diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
new file mode 100644
index 0000000..346e192
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
@@ -0,0 +1,62 @@
+package com.casic.birmm.inspect.greendao;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+import com.casic.birmm.inspect.greendao.InspectionBeanDao;
+import com.casic.birmm.inspect.greendao.TaskEventBeanDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ *
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+ private final DaoConfig inspectionBeanDaoConfig;
+ private final DaoConfig taskEventBeanDaoConfig;
+
+ private final InspectionBeanDao inspectionBeanDao;
+ private final TaskEventBeanDao taskEventBeanDao;
+
+ public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig>
+ daoConfigMap) {
+ super(db);
+
+ inspectionBeanDaoConfig = daoConfigMap.get(InspectionBeanDao.class).clone();
+ inspectionBeanDaoConfig.initIdentityScope(type);
+
+ taskEventBeanDaoConfig = daoConfigMap.get(TaskEventBeanDao.class).clone();
+ taskEventBeanDaoConfig.initIdentityScope(type);
+
+ inspectionBeanDao = new InspectionBeanDao(inspectionBeanDaoConfig, this);
+ taskEventBeanDao = new TaskEventBeanDao(taskEventBeanDaoConfig, this);
+
+ registerDao(InspectionBean.class, inspectionBeanDao);
+ registerDao(TaskEventBean.class, taskEventBeanDao);
+ }
+
+ public void clear() {
+ inspectionBeanDaoConfig.clearIdentityScope();
+ taskEventBeanDaoConfig.clearIdentityScope();
+ }
+
+ public InspectionBeanDao getInspectionBeanDao() {
+ return inspectionBeanDao;
+ }
+
+ public TaskEventBeanDao getTaskEventBeanDao() {
+ return taskEventBeanDao;
+ }
+
+}
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
new file mode 100644
index 0000000..346e192
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
@@ -0,0 +1,62 @@
+package com.casic.birmm.inspect.greendao;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+import com.casic.birmm.inspect.greendao.InspectionBeanDao;
+import com.casic.birmm.inspect.greendao.TaskEventBeanDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ *
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+ private final DaoConfig inspectionBeanDaoConfig;
+ private final DaoConfig taskEventBeanDaoConfig;
+
+ private final InspectionBeanDao inspectionBeanDao;
+ private final TaskEventBeanDao taskEventBeanDao;
+
+ public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig>
+ daoConfigMap) {
+ super(db);
+
+ inspectionBeanDaoConfig = daoConfigMap.get(InspectionBeanDao.class).clone();
+ inspectionBeanDaoConfig.initIdentityScope(type);
+
+ taskEventBeanDaoConfig = daoConfigMap.get(TaskEventBeanDao.class).clone();
+ taskEventBeanDaoConfig.initIdentityScope(type);
+
+ inspectionBeanDao = new InspectionBeanDao(inspectionBeanDaoConfig, this);
+ taskEventBeanDao = new TaskEventBeanDao(taskEventBeanDaoConfig, this);
+
+ registerDao(InspectionBean.class, inspectionBeanDao);
+ registerDao(TaskEventBean.class, taskEventBeanDao);
+ }
+
+ public void clear() {
+ inspectionBeanDaoConfig.clearIdentityScope();
+ taskEventBeanDaoConfig.clearIdentityScope();
+ }
+
+ public InspectionBeanDao getInspectionBeanDao() {
+ return inspectionBeanDao;
+ }
+
+ public TaskEventBeanDao getTaskEventBeanDao() {
+ return taskEventBeanDao;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
new file mode 100644
index 0000000..b7077a3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
@@ -0,0 +1,237 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "INSPECTION_BEAN".
+*/
+public class InspectionBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "INSPECTION_BEAN";
+
+ /**
+ * Properties of entity InspectionBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property Name = new Property(2, String.class, "name", false, "NAME");
+ public final static Property StartTime = new Property(3, String.class, "startTime", false, "START_TIME");
+ public final static Property EndTime = new Property(4, String.class, "endTime", false, "END_TIME");
+ public final static Property Date = new Property(5, String.class, "date", false, "DATE");
+ public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG");
+ public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT");
+ public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG");
+ public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT");
+ public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public InspectionBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public InspectionBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"INSPECTION_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"NAME\" TEXT," + // 2: name
+ "\"START_TIME\" TEXT," + // 3: startTime
+ "\"END_TIME\" TEXT," + // 4: endTime
+ "\"DATE\" TEXT," + // 5: date
+ "\"START_LNG\" REAL NOT NULL ," + // 6: startLng
+ "\"START_LAT\" REAL NOT NULL ," + // 7: startLat
+ "\"END_LNG\" REAL NOT NULL ," + // 8: endLng
+ "\"END_LAT\" REAL NOT NULL ," + // 9: endLat
+ "\"ROUTES\" TEXT," + // 10: routes
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"INSPECTION_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public InspectionBean readEntity(Cursor cursor, int offset) {
+ InspectionBean entity = new InspectionBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // name
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime
+ cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date
+ cursor.getDouble(offset + 6), // startLng
+ cursor.getDouble(offset + 7), // startLat
+ cursor.getDouble(offset + 8), // endLng
+ cursor.getDouble(offset + 9), // endLat
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, InspectionBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setName(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setStartTime(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setEndTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
+ entity.setStartLng(cursor.getDouble(offset + 6));
+ entity.setStartLat(cursor.getDouble(offset + 7));
+ entity.setEndLng(cursor.getDouble(offset + 8));
+ entity.setEndLat(cursor.getDouble(offset + 9));
+ entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(InspectionBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(InspectionBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(InspectionBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
new file mode 100644
index 0000000..346e192
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
@@ -0,0 +1,62 @@
+package com.casic.birmm.inspect.greendao;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+import com.casic.birmm.inspect.greendao.InspectionBeanDao;
+import com.casic.birmm.inspect.greendao.TaskEventBeanDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ *
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+ private final DaoConfig inspectionBeanDaoConfig;
+ private final DaoConfig taskEventBeanDaoConfig;
+
+ private final InspectionBeanDao inspectionBeanDao;
+ private final TaskEventBeanDao taskEventBeanDao;
+
+ public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig>
+ daoConfigMap) {
+ super(db);
+
+ inspectionBeanDaoConfig = daoConfigMap.get(InspectionBeanDao.class).clone();
+ inspectionBeanDaoConfig.initIdentityScope(type);
+
+ taskEventBeanDaoConfig = daoConfigMap.get(TaskEventBeanDao.class).clone();
+ taskEventBeanDaoConfig.initIdentityScope(type);
+
+ inspectionBeanDao = new InspectionBeanDao(inspectionBeanDaoConfig, this);
+ taskEventBeanDao = new TaskEventBeanDao(taskEventBeanDaoConfig, this);
+
+ registerDao(InspectionBean.class, inspectionBeanDao);
+ registerDao(TaskEventBean.class, taskEventBeanDao);
+ }
+
+ public void clear() {
+ inspectionBeanDaoConfig.clearIdentityScope();
+ taskEventBeanDaoConfig.clearIdentityScope();
+ }
+
+ public InspectionBeanDao getInspectionBeanDao() {
+ return inspectionBeanDao;
+ }
+
+ public TaskEventBeanDao getTaskEventBeanDao() {
+ return taskEventBeanDao;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
new file mode 100644
index 0000000..b7077a3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
@@ -0,0 +1,237 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "INSPECTION_BEAN".
+*/
+public class InspectionBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "INSPECTION_BEAN";
+
+ /**
+ * Properties of entity InspectionBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property Name = new Property(2, String.class, "name", false, "NAME");
+ public final static Property StartTime = new Property(3, String.class, "startTime", false, "START_TIME");
+ public final static Property EndTime = new Property(4, String.class, "endTime", false, "END_TIME");
+ public final static Property Date = new Property(5, String.class, "date", false, "DATE");
+ public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG");
+ public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT");
+ public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG");
+ public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT");
+ public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public InspectionBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public InspectionBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"INSPECTION_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"NAME\" TEXT," + // 2: name
+ "\"START_TIME\" TEXT," + // 3: startTime
+ "\"END_TIME\" TEXT," + // 4: endTime
+ "\"DATE\" TEXT," + // 5: date
+ "\"START_LNG\" REAL NOT NULL ," + // 6: startLng
+ "\"START_LAT\" REAL NOT NULL ," + // 7: startLat
+ "\"END_LNG\" REAL NOT NULL ," + // 8: endLng
+ "\"END_LAT\" REAL NOT NULL ," + // 9: endLat
+ "\"ROUTES\" TEXT," + // 10: routes
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"INSPECTION_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public InspectionBean readEntity(Cursor cursor, int offset) {
+ InspectionBean entity = new InspectionBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // name
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime
+ cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date
+ cursor.getDouble(offset + 6), // startLng
+ cursor.getDouble(offset + 7), // startLat
+ cursor.getDouble(offset + 8), // endLng
+ cursor.getDouble(offset + 9), // endLat
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, InspectionBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setName(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setStartTime(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setEndTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
+ entity.setStartLng(cursor.getDouble(offset + 6));
+ entity.setStartLat(cursor.getDouble(offset + 7));
+ entity.setEndLng(cursor.getDouble(offset + 8));
+ entity.setEndLat(cursor.getDouble(offset + 9));
+ entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(InspectionBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(InspectionBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(InspectionBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
new file mode 100644
index 0000000..3f040d3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
@@ -0,0 +1,245 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "TASK_EVENT_BEAN".
+*/
+public class TaskEventBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "TASK_EVENT_BEAN";
+
+ /**
+ * Properties of entity TaskEventBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property InspectionId = new Property(2, String.class, "inspectionId", false, "INSPECTION_ID");
+ public final static Property Name = new Property(3, String.class, "name", false, "NAME");
+ public final static Property CreateTime = new Property(4, String.class, "createTime", false, "CREATE_TIME");
+ public final static Property Lng = new Property(5, double.class, "lng", false, "LNG");
+ public final static Property Lat = new Property(6, double.class, "lat", false, "LAT");
+ public final static Property Type = new Property(7, String.class, "type", false, "TYPE");
+ public final static Property Data = new Property(8, double.class, "data", false, "DATA");
+ public final static Property Images = new Property(9, String.class, "images", false, "IMAGES");
+ public final static Property Description = new Property(10, String.class, "description", false, "DESCRIPTION");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public TaskEventBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public TaskEventBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"TASK_EVENT_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"INSPECTION_ID\" TEXT," + // 2: inspectionId
+ "\"NAME\" TEXT," + // 3: name
+ "\"CREATE_TIME\" TEXT," + // 4: createTime
+ "\"LNG\" REAL NOT NULL ," + // 5: lng
+ "\"LAT\" REAL NOT NULL ," + // 6: lat
+ "\"TYPE\" TEXT," + // 7: type
+ "\"DATA\" REAL NOT NULL ," + // 8: data
+ "\"IMAGES\" TEXT," + // 9: images
+ "\"DESCRIPTION\" TEXT," + // 10: description
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"TASK_EVENT_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public TaskEventBean readEntity(Cursor cursor, int offset) {
+ TaskEventBean entity = new TaskEventBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionId
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // name
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // createTime
+ cursor.getDouble(offset + 5), // lng
+ cursor.getDouble(offset + 6), // lat
+ cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // type
+ cursor.getDouble(offset + 8), // data
+ cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9), // images
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // description
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, TaskEventBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setInspectionId(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setName(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setCreateTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setLng(cursor.getDouble(offset + 5));
+ entity.setLat(cursor.getDouble(offset + 6));
+ entity.setType(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
+ entity.setData(cursor.getDouble(offset + 8));
+ entity.setImages(cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9));
+ entity.setDescription(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(TaskEventBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(TaskEventBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(TaskEventBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
new file mode 100644
index 0000000..346e192
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
@@ -0,0 +1,62 @@
+package com.casic.birmm.inspect.greendao;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+import com.casic.birmm.inspect.greendao.InspectionBeanDao;
+import com.casic.birmm.inspect.greendao.TaskEventBeanDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ *
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+ private final DaoConfig inspectionBeanDaoConfig;
+ private final DaoConfig taskEventBeanDaoConfig;
+
+ private final InspectionBeanDao inspectionBeanDao;
+ private final TaskEventBeanDao taskEventBeanDao;
+
+ public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig>
+ daoConfigMap) {
+ super(db);
+
+ inspectionBeanDaoConfig = daoConfigMap.get(InspectionBeanDao.class).clone();
+ inspectionBeanDaoConfig.initIdentityScope(type);
+
+ taskEventBeanDaoConfig = daoConfigMap.get(TaskEventBeanDao.class).clone();
+ taskEventBeanDaoConfig.initIdentityScope(type);
+
+ inspectionBeanDao = new InspectionBeanDao(inspectionBeanDaoConfig, this);
+ taskEventBeanDao = new TaskEventBeanDao(taskEventBeanDaoConfig, this);
+
+ registerDao(InspectionBean.class, inspectionBeanDao);
+ registerDao(TaskEventBean.class, taskEventBeanDao);
+ }
+
+ public void clear() {
+ inspectionBeanDaoConfig.clearIdentityScope();
+ taskEventBeanDaoConfig.clearIdentityScope();
+ }
+
+ public InspectionBeanDao getInspectionBeanDao() {
+ return inspectionBeanDao;
+ }
+
+ public TaskEventBeanDao getTaskEventBeanDao() {
+ return taskEventBeanDao;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
new file mode 100644
index 0000000..b7077a3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
@@ -0,0 +1,237 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "INSPECTION_BEAN".
+*/
+public class InspectionBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "INSPECTION_BEAN";
+
+ /**
+ * Properties of entity InspectionBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property Name = new Property(2, String.class, "name", false, "NAME");
+ public final static Property StartTime = new Property(3, String.class, "startTime", false, "START_TIME");
+ public final static Property EndTime = new Property(4, String.class, "endTime", false, "END_TIME");
+ public final static Property Date = new Property(5, String.class, "date", false, "DATE");
+ public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG");
+ public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT");
+ public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG");
+ public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT");
+ public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public InspectionBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public InspectionBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"INSPECTION_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"NAME\" TEXT," + // 2: name
+ "\"START_TIME\" TEXT," + // 3: startTime
+ "\"END_TIME\" TEXT," + // 4: endTime
+ "\"DATE\" TEXT," + // 5: date
+ "\"START_LNG\" REAL NOT NULL ," + // 6: startLng
+ "\"START_LAT\" REAL NOT NULL ," + // 7: startLat
+ "\"END_LNG\" REAL NOT NULL ," + // 8: endLng
+ "\"END_LAT\" REAL NOT NULL ," + // 9: endLat
+ "\"ROUTES\" TEXT," + // 10: routes
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"INSPECTION_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public InspectionBean readEntity(Cursor cursor, int offset) {
+ InspectionBean entity = new InspectionBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // name
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime
+ cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date
+ cursor.getDouble(offset + 6), // startLng
+ cursor.getDouble(offset + 7), // startLat
+ cursor.getDouble(offset + 8), // endLng
+ cursor.getDouble(offset + 9), // endLat
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, InspectionBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setName(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setStartTime(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setEndTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
+ entity.setStartLng(cursor.getDouble(offset + 6));
+ entity.setStartLat(cursor.getDouble(offset + 7));
+ entity.setEndLng(cursor.getDouble(offset + 8));
+ entity.setEndLat(cursor.getDouble(offset + 9));
+ entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(InspectionBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(InspectionBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(InspectionBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
new file mode 100644
index 0000000..3f040d3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
@@ -0,0 +1,245 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "TASK_EVENT_BEAN".
+*/
+public class TaskEventBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "TASK_EVENT_BEAN";
+
+ /**
+ * Properties of entity TaskEventBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property InspectionId = new Property(2, String.class, "inspectionId", false, "INSPECTION_ID");
+ public final static Property Name = new Property(3, String.class, "name", false, "NAME");
+ public final static Property CreateTime = new Property(4, String.class, "createTime", false, "CREATE_TIME");
+ public final static Property Lng = new Property(5, double.class, "lng", false, "LNG");
+ public final static Property Lat = new Property(6, double.class, "lat", false, "LAT");
+ public final static Property Type = new Property(7, String.class, "type", false, "TYPE");
+ public final static Property Data = new Property(8, double.class, "data", false, "DATA");
+ public final static Property Images = new Property(9, String.class, "images", false, "IMAGES");
+ public final static Property Description = new Property(10, String.class, "description", false, "DESCRIPTION");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public TaskEventBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public TaskEventBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"TASK_EVENT_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"INSPECTION_ID\" TEXT," + // 2: inspectionId
+ "\"NAME\" TEXT," + // 3: name
+ "\"CREATE_TIME\" TEXT," + // 4: createTime
+ "\"LNG\" REAL NOT NULL ," + // 5: lng
+ "\"LAT\" REAL NOT NULL ," + // 6: lat
+ "\"TYPE\" TEXT," + // 7: type
+ "\"DATA\" REAL NOT NULL ," + // 8: data
+ "\"IMAGES\" TEXT," + // 9: images
+ "\"DESCRIPTION\" TEXT," + // 10: description
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"TASK_EVENT_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public TaskEventBean readEntity(Cursor cursor, int offset) {
+ TaskEventBean entity = new TaskEventBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionId
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // name
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // createTime
+ cursor.getDouble(offset + 5), // lng
+ cursor.getDouble(offset + 6), // lat
+ cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // type
+ cursor.getDouble(offset + 8), // data
+ cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9), // images
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // description
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, TaskEventBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setInspectionId(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setName(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setCreateTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setLng(cursor.getDouble(offset + 5));
+ entity.setLat(cursor.getDouble(offset + 6));
+ entity.setType(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
+ entity.setData(cursor.getDouble(offset + 8));
+ entity.setImages(cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9));
+ entity.setDescription(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(TaskEventBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(TaskEventBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(TaskEventBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
new file mode 100644
index 0000000..dc635a4
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
@@ -0,0 +1,41 @@
+package com.casic.birmm.inspect.model
+
+class EventListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var total = 0
+ var rows: MutableList? =
+ null
+
+ class RowsBean {
+ /**
+ * createTime : 2020-12-28 14:56:59
+ * data : -1
+ * description : ggg
+ * id : t1609138629320112121
+ * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
+ * inspectionId : 1609138451543200022
+ * lat : 39.915956
+ * lng : 116.268596
+ * name : sss
+ * type : 自定义事件
+ * user : 超超级管理员
+ */
+ var createTime: String? = null
+ var data = 0
+ var description: String? = null
+ var id: String? = null
+ var images: String? = null
+ var inspectionId: String? = null
+ var lat = 0.0
+ var lng = 0.0
+ var name: String? = null
+ var type: String? = null
+ var user: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
new file mode 100644
index 0000000..346e192
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
@@ -0,0 +1,62 @@
+package com.casic.birmm.inspect.greendao;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+import com.casic.birmm.inspect.greendao.InspectionBeanDao;
+import com.casic.birmm.inspect.greendao.TaskEventBeanDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ *
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+ private final DaoConfig inspectionBeanDaoConfig;
+ private final DaoConfig taskEventBeanDaoConfig;
+
+ private final InspectionBeanDao inspectionBeanDao;
+ private final TaskEventBeanDao taskEventBeanDao;
+
+ public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig>
+ daoConfigMap) {
+ super(db);
+
+ inspectionBeanDaoConfig = daoConfigMap.get(InspectionBeanDao.class).clone();
+ inspectionBeanDaoConfig.initIdentityScope(type);
+
+ taskEventBeanDaoConfig = daoConfigMap.get(TaskEventBeanDao.class).clone();
+ taskEventBeanDaoConfig.initIdentityScope(type);
+
+ inspectionBeanDao = new InspectionBeanDao(inspectionBeanDaoConfig, this);
+ taskEventBeanDao = new TaskEventBeanDao(taskEventBeanDaoConfig, this);
+
+ registerDao(InspectionBean.class, inspectionBeanDao);
+ registerDao(TaskEventBean.class, taskEventBeanDao);
+ }
+
+ public void clear() {
+ inspectionBeanDaoConfig.clearIdentityScope();
+ taskEventBeanDaoConfig.clearIdentityScope();
+ }
+
+ public InspectionBeanDao getInspectionBeanDao() {
+ return inspectionBeanDao;
+ }
+
+ public TaskEventBeanDao getTaskEventBeanDao() {
+ return taskEventBeanDao;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
new file mode 100644
index 0000000..b7077a3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
@@ -0,0 +1,237 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "INSPECTION_BEAN".
+*/
+public class InspectionBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "INSPECTION_BEAN";
+
+ /**
+ * Properties of entity InspectionBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property Name = new Property(2, String.class, "name", false, "NAME");
+ public final static Property StartTime = new Property(3, String.class, "startTime", false, "START_TIME");
+ public final static Property EndTime = new Property(4, String.class, "endTime", false, "END_TIME");
+ public final static Property Date = new Property(5, String.class, "date", false, "DATE");
+ public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG");
+ public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT");
+ public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG");
+ public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT");
+ public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public InspectionBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public InspectionBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"INSPECTION_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"NAME\" TEXT," + // 2: name
+ "\"START_TIME\" TEXT," + // 3: startTime
+ "\"END_TIME\" TEXT," + // 4: endTime
+ "\"DATE\" TEXT," + // 5: date
+ "\"START_LNG\" REAL NOT NULL ," + // 6: startLng
+ "\"START_LAT\" REAL NOT NULL ," + // 7: startLat
+ "\"END_LNG\" REAL NOT NULL ," + // 8: endLng
+ "\"END_LAT\" REAL NOT NULL ," + // 9: endLat
+ "\"ROUTES\" TEXT," + // 10: routes
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"INSPECTION_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public InspectionBean readEntity(Cursor cursor, int offset) {
+ InspectionBean entity = new InspectionBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // name
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime
+ cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date
+ cursor.getDouble(offset + 6), // startLng
+ cursor.getDouble(offset + 7), // startLat
+ cursor.getDouble(offset + 8), // endLng
+ cursor.getDouble(offset + 9), // endLat
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, InspectionBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setName(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setStartTime(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setEndTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
+ entity.setStartLng(cursor.getDouble(offset + 6));
+ entity.setStartLat(cursor.getDouble(offset + 7));
+ entity.setEndLng(cursor.getDouble(offset + 8));
+ entity.setEndLat(cursor.getDouble(offset + 9));
+ entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(InspectionBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(InspectionBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(InspectionBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
new file mode 100644
index 0000000..3f040d3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
@@ -0,0 +1,245 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "TASK_EVENT_BEAN".
+*/
+public class TaskEventBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "TASK_EVENT_BEAN";
+
+ /**
+ * Properties of entity TaskEventBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property InspectionId = new Property(2, String.class, "inspectionId", false, "INSPECTION_ID");
+ public final static Property Name = new Property(3, String.class, "name", false, "NAME");
+ public final static Property CreateTime = new Property(4, String.class, "createTime", false, "CREATE_TIME");
+ public final static Property Lng = new Property(5, double.class, "lng", false, "LNG");
+ public final static Property Lat = new Property(6, double.class, "lat", false, "LAT");
+ public final static Property Type = new Property(7, String.class, "type", false, "TYPE");
+ public final static Property Data = new Property(8, double.class, "data", false, "DATA");
+ public final static Property Images = new Property(9, String.class, "images", false, "IMAGES");
+ public final static Property Description = new Property(10, String.class, "description", false, "DESCRIPTION");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public TaskEventBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public TaskEventBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"TASK_EVENT_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"INSPECTION_ID\" TEXT," + // 2: inspectionId
+ "\"NAME\" TEXT," + // 3: name
+ "\"CREATE_TIME\" TEXT," + // 4: createTime
+ "\"LNG\" REAL NOT NULL ," + // 5: lng
+ "\"LAT\" REAL NOT NULL ," + // 6: lat
+ "\"TYPE\" TEXT," + // 7: type
+ "\"DATA\" REAL NOT NULL ," + // 8: data
+ "\"IMAGES\" TEXT," + // 9: images
+ "\"DESCRIPTION\" TEXT," + // 10: description
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"TASK_EVENT_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public TaskEventBean readEntity(Cursor cursor, int offset) {
+ TaskEventBean entity = new TaskEventBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionId
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // name
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // createTime
+ cursor.getDouble(offset + 5), // lng
+ cursor.getDouble(offset + 6), // lat
+ cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // type
+ cursor.getDouble(offset + 8), // data
+ cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9), // images
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // description
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, TaskEventBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setInspectionId(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setName(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setCreateTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setLng(cursor.getDouble(offset + 5));
+ entity.setLat(cursor.getDouble(offset + 6));
+ entity.setType(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
+ entity.setData(cursor.getDouble(offset + 8));
+ entity.setImages(cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9));
+ entity.setDescription(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(TaskEventBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(TaskEventBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(TaskEventBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
new file mode 100644
index 0000000..dc635a4
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
@@ -0,0 +1,41 @@
+package com.casic.birmm.inspect.model
+
+class EventListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var total = 0
+ var rows: MutableList? =
+ null
+
+ class RowsBean {
+ /**
+ * createTime : 2020-12-28 14:56:59
+ * data : -1
+ * description : ggg
+ * id : t1609138629320112121
+ * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
+ * inspectionId : 1609138451543200022
+ * lat : 39.915956
+ * lng : 116.268596
+ * name : sss
+ * type : 自定义事件
+ * user : 超超级管理员
+ */
+ var createTime: String? = null
+ var data = 0
+ var description: String? = null
+ var id: String? = null
+ var images: String? = null
+ var inspectionId: String? = null
+ var lat = 0.0
+ var lng = 0.0
+ var name: String? = null
+ var type: String? = null
+ var user: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
deleted file mode 100644
index de499aa..0000000
--- a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.casic.birmm.inspect.model
-
-class EventModel {
- var code = 0
- var data: DataBean? = null
- var message: String? = null
- var isSuccess = false
-
- class DataBean {
- var total = 0
- var rows: MutableList? =
- null
-
- class RowsBean {
- /**
- * createTime : 2020-12-28 14:56:59
- * data : -1
- * description : ggg
- * id : t1609138629320112121
- * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
- * inspectionId : 1609138451543200022
- * lat : 39.915956
- * lng : 116.268596
- * name : sss
- * type : 自定义事件
- * user : 超超级管理员
- */
- var createTime: String? = null
- var data = 0
- var description: String? = null
- var id: String? = null
- var images: String? = null
- var inspectionId: String? = null
- var lat = 0.0
- var lng = 0.0
- var name: String? = null
- var type: String? = null
- var user: String? = null
- }
- }
-}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
new file mode 100644
index 0000000..346e192
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
@@ -0,0 +1,62 @@
+package com.casic.birmm.inspect.greendao;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+import com.casic.birmm.inspect.greendao.InspectionBeanDao;
+import com.casic.birmm.inspect.greendao.TaskEventBeanDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ *
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+ private final DaoConfig inspectionBeanDaoConfig;
+ private final DaoConfig taskEventBeanDaoConfig;
+
+ private final InspectionBeanDao inspectionBeanDao;
+ private final TaskEventBeanDao taskEventBeanDao;
+
+ public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig>
+ daoConfigMap) {
+ super(db);
+
+ inspectionBeanDaoConfig = daoConfigMap.get(InspectionBeanDao.class).clone();
+ inspectionBeanDaoConfig.initIdentityScope(type);
+
+ taskEventBeanDaoConfig = daoConfigMap.get(TaskEventBeanDao.class).clone();
+ taskEventBeanDaoConfig.initIdentityScope(type);
+
+ inspectionBeanDao = new InspectionBeanDao(inspectionBeanDaoConfig, this);
+ taskEventBeanDao = new TaskEventBeanDao(taskEventBeanDaoConfig, this);
+
+ registerDao(InspectionBean.class, inspectionBeanDao);
+ registerDao(TaskEventBean.class, taskEventBeanDao);
+ }
+
+ public void clear() {
+ inspectionBeanDaoConfig.clearIdentityScope();
+ taskEventBeanDaoConfig.clearIdentityScope();
+ }
+
+ public InspectionBeanDao getInspectionBeanDao() {
+ return inspectionBeanDao;
+ }
+
+ public TaskEventBeanDao getTaskEventBeanDao() {
+ return taskEventBeanDao;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
new file mode 100644
index 0000000..b7077a3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
@@ -0,0 +1,237 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "INSPECTION_BEAN".
+*/
+public class InspectionBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "INSPECTION_BEAN";
+
+ /**
+ * Properties of entity InspectionBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property Name = new Property(2, String.class, "name", false, "NAME");
+ public final static Property StartTime = new Property(3, String.class, "startTime", false, "START_TIME");
+ public final static Property EndTime = new Property(4, String.class, "endTime", false, "END_TIME");
+ public final static Property Date = new Property(5, String.class, "date", false, "DATE");
+ public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG");
+ public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT");
+ public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG");
+ public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT");
+ public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public InspectionBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public InspectionBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"INSPECTION_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"NAME\" TEXT," + // 2: name
+ "\"START_TIME\" TEXT," + // 3: startTime
+ "\"END_TIME\" TEXT," + // 4: endTime
+ "\"DATE\" TEXT," + // 5: date
+ "\"START_LNG\" REAL NOT NULL ," + // 6: startLng
+ "\"START_LAT\" REAL NOT NULL ," + // 7: startLat
+ "\"END_LNG\" REAL NOT NULL ," + // 8: endLng
+ "\"END_LAT\" REAL NOT NULL ," + // 9: endLat
+ "\"ROUTES\" TEXT," + // 10: routes
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"INSPECTION_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public InspectionBean readEntity(Cursor cursor, int offset) {
+ InspectionBean entity = new InspectionBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // name
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime
+ cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date
+ cursor.getDouble(offset + 6), // startLng
+ cursor.getDouble(offset + 7), // startLat
+ cursor.getDouble(offset + 8), // endLng
+ cursor.getDouble(offset + 9), // endLat
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, InspectionBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setName(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setStartTime(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setEndTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
+ entity.setStartLng(cursor.getDouble(offset + 6));
+ entity.setStartLat(cursor.getDouble(offset + 7));
+ entity.setEndLng(cursor.getDouble(offset + 8));
+ entity.setEndLat(cursor.getDouble(offset + 9));
+ entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(InspectionBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(InspectionBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(InspectionBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
new file mode 100644
index 0000000..3f040d3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
@@ -0,0 +1,245 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "TASK_EVENT_BEAN".
+*/
+public class TaskEventBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "TASK_EVENT_BEAN";
+
+ /**
+ * Properties of entity TaskEventBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property InspectionId = new Property(2, String.class, "inspectionId", false, "INSPECTION_ID");
+ public final static Property Name = new Property(3, String.class, "name", false, "NAME");
+ public final static Property CreateTime = new Property(4, String.class, "createTime", false, "CREATE_TIME");
+ public final static Property Lng = new Property(5, double.class, "lng", false, "LNG");
+ public final static Property Lat = new Property(6, double.class, "lat", false, "LAT");
+ public final static Property Type = new Property(7, String.class, "type", false, "TYPE");
+ public final static Property Data = new Property(8, double.class, "data", false, "DATA");
+ public final static Property Images = new Property(9, String.class, "images", false, "IMAGES");
+ public final static Property Description = new Property(10, String.class, "description", false, "DESCRIPTION");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public TaskEventBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public TaskEventBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"TASK_EVENT_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"INSPECTION_ID\" TEXT," + // 2: inspectionId
+ "\"NAME\" TEXT," + // 3: name
+ "\"CREATE_TIME\" TEXT," + // 4: createTime
+ "\"LNG\" REAL NOT NULL ," + // 5: lng
+ "\"LAT\" REAL NOT NULL ," + // 6: lat
+ "\"TYPE\" TEXT," + // 7: type
+ "\"DATA\" REAL NOT NULL ," + // 8: data
+ "\"IMAGES\" TEXT," + // 9: images
+ "\"DESCRIPTION\" TEXT," + // 10: description
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"TASK_EVENT_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public TaskEventBean readEntity(Cursor cursor, int offset) {
+ TaskEventBean entity = new TaskEventBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionId
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // name
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // createTime
+ cursor.getDouble(offset + 5), // lng
+ cursor.getDouble(offset + 6), // lat
+ cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // type
+ cursor.getDouble(offset + 8), // data
+ cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9), // images
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // description
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, TaskEventBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setInspectionId(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setName(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setCreateTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setLng(cursor.getDouble(offset + 5));
+ entity.setLat(cursor.getDouble(offset + 6));
+ entity.setType(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
+ entity.setData(cursor.getDouble(offset + 8));
+ entity.setImages(cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9));
+ entity.setDescription(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(TaskEventBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(TaskEventBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(TaskEventBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
new file mode 100644
index 0000000..dc635a4
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
@@ -0,0 +1,41 @@
+package com.casic.birmm.inspect.model
+
+class EventListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var total = 0
+ var rows: MutableList? =
+ null
+
+ class RowsBean {
+ /**
+ * createTime : 2020-12-28 14:56:59
+ * data : -1
+ * description : ggg
+ * id : t1609138629320112121
+ * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
+ * inspectionId : 1609138451543200022
+ * lat : 39.915956
+ * lng : 116.268596
+ * name : sss
+ * type : 自定义事件
+ * user : 超超级管理员
+ */
+ var createTime: String? = null
+ var data = 0
+ var description: String? = null
+ var id: String? = null
+ var images: String? = null
+ var inspectionId: String? = null
+ var lat = 0.0
+ var lng = 0.0
+ var name: String? = null
+ var type: String? = null
+ var user: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
deleted file mode 100644
index de499aa..0000000
--- a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.casic.birmm.inspect.model
-
-class EventModel {
- var code = 0
- var data: DataBean? = null
- var message: String? = null
- var isSuccess = false
-
- class DataBean {
- var total = 0
- var rows: MutableList? =
- null
-
- class RowsBean {
- /**
- * createTime : 2020-12-28 14:56:59
- * data : -1
- * description : ggg
- * id : t1609138629320112121
- * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
- * inspectionId : 1609138451543200022
- * lat : 39.915956
- * lng : 116.268596
- * name : sss
- * type : 自定义事件
- * user : 超超级管理员
- */
- var createTime: String? = null
- var data = 0
- var description: String? = null
- var id: String? = null
- var images: String? = null
- var inspectionId: String? = null
- var lat = 0.0
- var lng = 0.0
- var name: String? = null
- var type: String? = null
- var user: String? = null
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt
new file mode 100644
index 0000000..395b6e8
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt
@@ -0,0 +1,43 @@
+package com.casic.birmm.inspect.model
+
+class InspectListModel {
+
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+
+ var total = 0
+ var rows: MutableList? = null
+
+ class RowsBean {
+ /**
+ * date : 2021年07月08日
+ * endLat : 39.915908
+ * endLng : 116.26876
+ * endTime : 2021-07-08 11:20:20
+ * id : 162570318141612121
+ * name : 测试
+ * routes : [[116.2694615342882,39.913364800347225],[116.26944390190972,39.913723415798614],[116.2694420030382,39.91406846788195],[116.26944363064236,39.91439860026042],[116.268654,39.915826],[116.268759765625,39.91590766059028]]
+ * startLat : 39.913365
+ * startLng : 116.269462
+ * startTime : 2021-07-08 08:13:01
+ * user : 王晓颖
+ */
+ var date: String? = null
+ var endLat = 0.0
+ var endLng = 0.0
+ var endTime: String? = null
+ var id: String? = null
+ var name: String? = null
+ var routes: String? = null
+ var startLat = 0.0
+ var startLng = 0.0
+ var startTime: String? = null
+ var user: String? = null
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
new file mode 100644
index 0000000..346e192
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
@@ -0,0 +1,62 @@
+package com.casic.birmm.inspect.greendao;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+import com.casic.birmm.inspect.greendao.InspectionBeanDao;
+import com.casic.birmm.inspect.greendao.TaskEventBeanDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ *
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+ private final DaoConfig inspectionBeanDaoConfig;
+ private final DaoConfig taskEventBeanDaoConfig;
+
+ private final InspectionBeanDao inspectionBeanDao;
+ private final TaskEventBeanDao taskEventBeanDao;
+
+ public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig>
+ daoConfigMap) {
+ super(db);
+
+ inspectionBeanDaoConfig = daoConfigMap.get(InspectionBeanDao.class).clone();
+ inspectionBeanDaoConfig.initIdentityScope(type);
+
+ taskEventBeanDaoConfig = daoConfigMap.get(TaskEventBeanDao.class).clone();
+ taskEventBeanDaoConfig.initIdentityScope(type);
+
+ inspectionBeanDao = new InspectionBeanDao(inspectionBeanDaoConfig, this);
+ taskEventBeanDao = new TaskEventBeanDao(taskEventBeanDaoConfig, this);
+
+ registerDao(InspectionBean.class, inspectionBeanDao);
+ registerDao(TaskEventBean.class, taskEventBeanDao);
+ }
+
+ public void clear() {
+ inspectionBeanDaoConfig.clearIdentityScope();
+ taskEventBeanDaoConfig.clearIdentityScope();
+ }
+
+ public InspectionBeanDao getInspectionBeanDao() {
+ return inspectionBeanDao;
+ }
+
+ public TaskEventBeanDao getTaskEventBeanDao() {
+ return taskEventBeanDao;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
new file mode 100644
index 0000000..b7077a3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
@@ -0,0 +1,237 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "INSPECTION_BEAN".
+*/
+public class InspectionBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "INSPECTION_BEAN";
+
+ /**
+ * Properties of entity InspectionBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property Name = new Property(2, String.class, "name", false, "NAME");
+ public final static Property StartTime = new Property(3, String.class, "startTime", false, "START_TIME");
+ public final static Property EndTime = new Property(4, String.class, "endTime", false, "END_TIME");
+ public final static Property Date = new Property(5, String.class, "date", false, "DATE");
+ public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG");
+ public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT");
+ public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG");
+ public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT");
+ public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public InspectionBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public InspectionBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"INSPECTION_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"NAME\" TEXT," + // 2: name
+ "\"START_TIME\" TEXT," + // 3: startTime
+ "\"END_TIME\" TEXT," + // 4: endTime
+ "\"DATE\" TEXT," + // 5: date
+ "\"START_LNG\" REAL NOT NULL ," + // 6: startLng
+ "\"START_LAT\" REAL NOT NULL ," + // 7: startLat
+ "\"END_LNG\" REAL NOT NULL ," + // 8: endLng
+ "\"END_LAT\" REAL NOT NULL ," + // 9: endLat
+ "\"ROUTES\" TEXT," + // 10: routes
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"INSPECTION_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public InspectionBean readEntity(Cursor cursor, int offset) {
+ InspectionBean entity = new InspectionBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // name
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime
+ cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date
+ cursor.getDouble(offset + 6), // startLng
+ cursor.getDouble(offset + 7), // startLat
+ cursor.getDouble(offset + 8), // endLng
+ cursor.getDouble(offset + 9), // endLat
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, InspectionBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setName(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setStartTime(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setEndTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
+ entity.setStartLng(cursor.getDouble(offset + 6));
+ entity.setStartLat(cursor.getDouble(offset + 7));
+ entity.setEndLng(cursor.getDouble(offset + 8));
+ entity.setEndLat(cursor.getDouble(offset + 9));
+ entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(InspectionBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(InspectionBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(InspectionBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
new file mode 100644
index 0000000..3f040d3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
@@ -0,0 +1,245 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "TASK_EVENT_BEAN".
+*/
+public class TaskEventBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "TASK_EVENT_BEAN";
+
+ /**
+ * Properties of entity TaskEventBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property InspectionId = new Property(2, String.class, "inspectionId", false, "INSPECTION_ID");
+ public final static Property Name = new Property(3, String.class, "name", false, "NAME");
+ public final static Property CreateTime = new Property(4, String.class, "createTime", false, "CREATE_TIME");
+ public final static Property Lng = new Property(5, double.class, "lng", false, "LNG");
+ public final static Property Lat = new Property(6, double.class, "lat", false, "LAT");
+ public final static Property Type = new Property(7, String.class, "type", false, "TYPE");
+ public final static Property Data = new Property(8, double.class, "data", false, "DATA");
+ public final static Property Images = new Property(9, String.class, "images", false, "IMAGES");
+ public final static Property Description = new Property(10, String.class, "description", false, "DESCRIPTION");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public TaskEventBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public TaskEventBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"TASK_EVENT_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"INSPECTION_ID\" TEXT," + // 2: inspectionId
+ "\"NAME\" TEXT," + // 3: name
+ "\"CREATE_TIME\" TEXT," + // 4: createTime
+ "\"LNG\" REAL NOT NULL ," + // 5: lng
+ "\"LAT\" REAL NOT NULL ," + // 6: lat
+ "\"TYPE\" TEXT," + // 7: type
+ "\"DATA\" REAL NOT NULL ," + // 8: data
+ "\"IMAGES\" TEXT," + // 9: images
+ "\"DESCRIPTION\" TEXT," + // 10: description
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"TASK_EVENT_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public TaskEventBean readEntity(Cursor cursor, int offset) {
+ TaskEventBean entity = new TaskEventBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionId
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // name
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // createTime
+ cursor.getDouble(offset + 5), // lng
+ cursor.getDouble(offset + 6), // lat
+ cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // type
+ cursor.getDouble(offset + 8), // data
+ cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9), // images
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // description
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, TaskEventBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setInspectionId(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setName(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setCreateTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setLng(cursor.getDouble(offset + 5));
+ entity.setLat(cursor.getDouble(offset + 6));
+ entity.setType(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
+ entity.setData(cursor.getDouble(offset + 8));
+ entity.setImages(cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9));
+ entity.setDescription(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(TaskEventBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(TaskEventBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(TaskEventBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
new file mode 100644
index 0000000..dc635a4
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
@@ -0,0 +1,41 @@
+package com.casic.birmm.inspect.model
+
+class EventListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var total = 0
+ var rows: MutableList? =
+ null
+
+ class RowsBean {
+ /**
+ * createTime : 2020-12-28 14:56:59
+ * data : -1
+ * description : ggg
+ * id : t1609138629320112121
+ * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
+ * inspectionId : 1609138451543200022
+ * lat : 39.915956
+ * lng : 116.268596
+ * name : sss
+ * type : 自定义事件
+ * user : 超超级管理员
+ */
+ var createTime: String? = null
+ var data = 0
+ var description: String? = null
+ var id: String? = null
+ var images: String? = null
+ var inspectionId: String? = null
+ var lat = 0.0
+ var lng = 0.0
+ var name: String? = null
+ var type: String? = null
+ var user: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
deleted file mode 100644
index de499aa..0000000
--- a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.casic.birmm.inspect.model
-
-class EventModel {
- var code = 0
- var data: DataBean? = null
- var message: String? = null
- var isSuccess = false
-
- class DataBean {
- var total = 0
- var rows: MutableList? =
- null
-
- class RowsBean {
- /**
- * createTime : 2020-12-28 14:56:59
- * data : -1
- * description : ggg
- * id : t1609138629320112121
- * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
- * inspectionId : 1609138451543200022
- * lat : 39.915956
- * lng : 116.268596
- * name : sss
- * type : 自定义事件
- * user : 超超级管理员
- */
- var createTime: String? = null
- var data = 0
- var description: String? = null
- var id: String? = null
- var images: String? = null
- var inspectionId: String? = null
- var lat = 0.0
- var lng = 0.0
- var name: String? = null
- var type: String? = null
- var user: String? = null
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt
new file mode 100644
index 0000000..395b6e8
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt
@@ -0,0 +1,43 @@
+package com.casic.birmm.inspect.model
+
+class InspectListModel {
+
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+
+ var total = 0
+ var rows: MutableList? = null
+
+ class RowsBean {
+ /**
+ * date : 2021年07月08日
+ * endLat : 39.915908
+ * endLng : 116.26876
+ * endTime : 2021-07-08 11:20:20
+ * id : 162570318141612121
+ * name : 测试
+ * routes : [[116.2694615342882,39.913364800347225],[116.26944390190972,39.913723415798614],[116.2694420030382,39.91406846788195],[116.26944363064236,39.91439860026042],[116.268654,39.915826],[116.268759765625,39.91590766059028]]
+ * startLat : 39.913365
+ * startLng : 116.269462
+ * startTime : 2021-07-08 08:13:01
+ * user : 王晓颖
+ */
+ var date: String? = null
+ var endLat = 0.0
+ var endLng = 0.0
+ var endTime: String? = null
+ var id: String? = null
+ var name: String? = null
+ var routes: String? = null
+ var startLat = 0.0
+ var startLng = 0.0
+ var startTime: String? = null
+ var user: String? = null
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/InspectModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/InspectModel.kt
deleted file mode 100644
index 558e716..0000000
--- a/app/src/main/java/com/casic/birmm/inspect/model/InspectModel.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.casic.birmm.inspect.model
-
-class InspectModel {
-
- var code = 0
- var data: DataBean? = null
- var message: String? = null
- var isSuccess = false
-
- class DataBean {
-
- var total = 0
- var rows: MutableList? = null
-
- class RowsBean {
- /**
- * date : 2021年07月08日
- * endLat : 39.915908
- * endLng : 116.26876
- * endTime : 2021-07-08 11:20:20
- * id : 162570318141612121
- * name : 测试
- * routes : [[116.2694615342882,39.913364800347225],[116.26944390190972,39.913723415798614],[116.2694420030382,39.91406846788195],[116.26944363064236,39.91439860026042],[116.268654,39.915826],[116.268759765625,39.91590766059028]]
- * startLat : 39.913365
- * startLng : 116.269462
- * startTime : 2021-07-08 08:13:01
- * user : 王晓颖
- */
- var date: String? = null
- var endLat = 0.0
- var endLng = 0.0
- var endTime: String? = null
- var id: String? = null
- var name: String? = null
- var routes: String? = null
- var startLat = 0.0
- var startLng = 0.0
- var startTime: String? = null
- var user: String? = null
-
- }
- }
-}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
new file mode 100644
index 0000000..346e192
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
@@ -0,0 +1,62 @@
+package com.casic.birmm.inspect.greendao;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+import com.casic.birmm.inspect.greendao.InspectionBeanDao;
+import com.casic.birmm.inspect.greendao.TaskEventBeanDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ *
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+ private final DaoConfig inspectionBeanDaoConfig;
+ private final DaoConfig taskEventBeanDaoConfig;
+
+ private final InspectionBeanDao inspectionBeanDao;
+ private final TaskEventBeanDao taskEventBeanDao;
+
+ public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig>
+ daoConfigMap) {
+ super(db);
+
+ inspectionBeanDaoConfig = daoConfigMap.get(InspectionBeanDao.class).clone();
+ inspectionBeanDaoConfig.initIdentityScope(type);
+
+ taskEventBeanDaoConfig = daoConfigMap.get(TaskEventBeanDao.class).clone();
+ taskEventBeanDaoConfig.initIdentityScope(type);
+
+ inspectionBeanDao = new InspectionBeanDao(inspectionBeanDaoConfig, this);
+ taskEventBeanDao = new TaskEventBeanDao(taskEventBeanDaoConfig, this);
+
+ registerDao(InspectionBean.class, inspectionBeanDao);
+ registerDao(TaskEventBean.class, taskEventBeanDao);
+ }
+
+ public void clear() {
+ inspectionBeanDaoConfig.clearIdentityScope();
+ taskEventBeanDaoConfig.clearIdentityScope();
+ }
+
+ public InspectionBeanDao getInspectionBeanDao() {
+ return inspectionBeanDao;
+ }
+
+ public TaskEventBeanDao getTaskEventBeanDao() {
+ return taskEventBeanDao;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
new file mode 100644
index 0000000..b7077a3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
@@ -0,0 +1,237 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "INSPECTION_BEAN".
+*/
+public class InspectionBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "INSPECTION_BEAN";
+
+ /**
+ * Properties of entity InspectionBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property Name = new Property(2, String.class, "name", false, "NAME");
+ public final static Property StartTime = new Property(3, String.class, "startTime", false, "START_TIME");
+ public final static Property EndTime = new Property(4, String.class, "endTime", false, "END_TIME");
+ public final static Property Date = new Property(5, String.class, "date", false, "DATE");
+ public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG");
+ public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT");
+ public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG");
+ public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT");
+ public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public InspectionBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public InspectionBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"INSPECTION_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"NAME\" TEXT," + // 2: name
+ "\"START_TIME\" TEXT," + // 3: startTime
+ "\"END_TIME\" TEXT," + // 4: endTime
+ "\"DATE\" TEXT," + // 5: date
+ "\"START_LNG\" REAL NOT NULL ," + // 6: startLng
+ "\"START_LAT\" REAL NOT NULL ," + // 7: startLat
+ "\"END_LNG\" REAL NOT NULL ," + // 8: endLng
+ "\"END_LAT\" REAL NOT NULL ," + // 9: endLat
+ "\"ROUTES\" TEXT," + // 10: routes
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"INSPECTION_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public InspectionBean readEntity(Cursor cursor, int offset) {
+ InspectionBean entity = new InspectionBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // name
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime
+ cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date
+ cursor.getDouble(offset + 6), // startLng
+ cursor.getDouble(offset + 7), // startLat
+ cursor.getDouble(offset + 8), // endLng
+ cursor.getDouble(offset + 9), // endLat
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, InspectionBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setName(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setStartTime(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setEndTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
+ entity.setStartLng(cursor.getDouble(offset + 6));
+ entity.setStartLat(cursor.getDouble(offset + 7));
+ entity.setEndLng(cursor.getDouble(offset + 8));
+ entity.setEndLat(cursor.getDouble(offset + 9));
+ entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(InspectionBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(InspectionBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(InspectionBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
new file mode 100644
index 0000000..3f040d3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
@@ -0,0 +1,245 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "TASK_EVENT_BEAN".
+*/
+public class TaskEventBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "TASK_EVENT_BEAN";
+
+ /**
+ * Properties of entity TaskEventBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property InspectionId = new Property(2, String.class, "inspectionId", false, "INSPECTION_ID");
+ public final static Property Name = new Property(3, String.class, "name", false, "NAME");
+ public final static Property CreateTime = new Property(4, String.class, "createTime", false, "CREATE_TIME");
+ public final static Property Lng = new Property(5, double.class, "lng", false, "LNG");
+ public final static Property Lat = new Property(6, double.class, "lat", false, "LAT");
+ public final static Property Type = new Property(7, String.class, "type", false, "TYPE");
+ public final static Property Data = new Property(8, double.class, "data", false, "DATA");
+ public final static Property Images = new Property(9, String.class, "images", false, "IMAGES");
+ public final static Property Description = new Property(10, String.class, "description", false, "DESCRIPTION");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public TaskEventBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public TaskEventBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"TASK_EVENT_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"INSPECTION_ID\" TEXT," + // 2: inspectionId
+ "\"NAME\" TEXT," + // 3: name
+ "\"CREATE_TIME\" TEXT," + // 4: createTime
+ "\"LNG\" REAL NOT NULL ," + // 5: lng
+ "\"LAT\" REAL NOT NULL ," + // 6: lat
+ "\"TYPE\" TEXT," + // 7: type
+ "\"DATA\" REAL NOT NULL ," + // 8: data
+ "\"IMAGES\" TEXT," + // 9: images
+ "\"DESCRIPTION\" TEXT," + // 10: description
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"TASK_EVENT_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public TaskEventBean readEntity(Cursor cursor, int offset) {
+ TaskEventBean entity = new TaskEventBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionId
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // name
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // createTime
+ cursor.getDouble(offset + 5), // lng
+ cursor.getDouble(offset + 6), // lat
+ cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // type
+ cursor.getDouble(offset + 8), // data
+ cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9), // images
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // description
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, TaskEventBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setInspectionId(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setName(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setCreateTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setLng(cursor.getDouble(offset + 5));
+ entity.setLat(cursor.getDouble(offset + 6));
+ entity.setType(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
+ entity.setData(cursor.getDouble(offset + 8));
+ entity.setImages(cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9));
+ entity.setDescription(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(TaskEventBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(TaskEventBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(TaskEventBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
new file mode 100644
index 0000000..dc635a4
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
@@ -0,0 +1,41 @@
+package com.casic.birmm.inspect.model
+
+class EventListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var total = 0
+ var rows: MutableList? =
+ null
+
+ class RowsBean {
+ /**
+ * createTime : 2020-12-28 14:56:59
+ * data : -1
+ * description : ggg
+ * id : t1609138629320112121
+ * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
+ * inspectionId : 1609138451543200022
+ * lat : 39.915956
+ * lng : 116.268596
+ * name : sss
+ * type : 自定义事件
+ * user : 超超级管理员
+ */
+ var createTime: String? = null
+ var data = 0
+ var description: String? = null
+ var id: String? = null
+ var images: String? = null
+ var inspectionId: String? = null
+ var lat = 0.0
+ var lng = 0.0
+ var name: String? = null
+ var type: String? = null
+ var user: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
deleted file mode 100644
index de499aa..0000000
--- a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.casic.birmm.inspect.model
-
-class EventModel {
- var code = 0
- var data: DataBean? = null
- var message: String? = null
- var isSuccess = false
-
- class DataBean {
- var total = 0
- var rows: MutableList? =
- null
-
- class RowsBean {
- /**
- * createTime : 2020-12-28 14:56:59
- * data : -1
- * description : ggg
- * id : t1609138629320112121
- * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
- * inspectionId : 1609138451543200022
- * lat : 39.915956
- * lng : 116.268596
- * name : sss
- * type : 自定义事件
- * user : 超超级管理员
- */
- var createTime: String? = null
- var data = 0
- var description: String? = null
- var id: String? = null
- var images: String? = null
- var inspectionId: String? = null
- var lat = 0.0
- var lng = 0.0
- var name: String? = null
- var type: String? = null
- var user: String? = null
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt
new file mode 100644
index 0000000..395b6e8
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt
@@ -0,0 +1,43 @@
+package com.casic.birmm.inspect.model
+
+class InspectListModel {
+
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+
+ var total = 0
+ var rows: MutableList? = null
+
+ class RowsBean {
+ /**
+ * date : 2021年07月08日
+ * endLat : 39.915908
+ * endLng : 116.26876
+ * endTime : 2021-07-08 11:20:20
+ * id : 162570318141612121
+ * name : 测试
+ * routes : [[116.2694615342882,39.913364800347225],[116.26944390190972,39.913723415798614],[116.2694420030382,39.91406846788195],[116.26944363064236,39.91439860026042],[116.268654,39.915826],[116.268759765625,39.91590766059028]]
+ * startLat : 39.913365
+ * startLng : 116.269462
+ * startTime : 2021-07-08 08:13:01
+ * user : 王晓颖
+ */
+ var date: String? = null
+ var endLat = 0.0
+ var endLng = 0.0
+ var endTime: String? = null
+ var id: String? = null
+ var name: String? = null
+ var routes: String? = null
+ var startLat = 0.0
+ var startLng = 0.0
+ var startTime: String? = null
+ var user: String? = null
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/InspectModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/InspectModel.kt
deleted file mode 100644
index 558e716..0000000
--- a/app/src/main/java/com/casic/birmm/inspect/model/InspectModel.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.casic.birmm.inspect.model
-
-class InspectModel {
-
- var code = 0
- var data: DataBean? = null
- var message: String? = null
- var isSuccess = false
-
- class DataBean {
-
- var total = 0
- var rows: MutableList? = null
-
- class RowsBean {
- /**
- * date : 2021年07月08日
- * endLat : 39.915908
- * endLng : 116.26876
- * endTime : 2021-07-08 11:20:20
- * id : 162570318141612121
- * name : 测试
- * routes : [[116.2694615342882,39.913364800347225],[116.26944390190972,39.913723415798614],[116.2694420030382,39.91406846788195],[116.26944363064236,39.91439860026042],[116.268654,39.915826],[116.268759765625,39.91590766059028]]
- * startLat : 39.913365
- * startLng : 116.269462
- * startTime : 2021-07-08 08:13:01
- * user : 王晓颖
- */
- var date: String? = null
- var endLat = 0.0
- var endLng = 0.0
- var endTime: String? = null
- var id: String? = null
- var name: String? = null
- var routes: String? = null
- var startLat = 0.0
- var startLng = 0.0
- var startTime: String? = null
- var user: String? = null
-
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/TaskRecordModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/TaskRecordModel.kt
index ee6f1f6..beb469b 100644
--- a/app/src/main/java/com/casic/birmm/inspect/model/TaskRecordModel.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/model/TaskRecordModel.kt
@@ -1,5 +1,6 @@
package com.casic.birmm.inspect.model
+//同巡检Id的事件列表数据模型
class TaskRecordModel {
var code = 0
@@ -8,7 +9,7 @@
var isSuccess = false
class DataBean {
- var list: List? = null
+ var list: MutableList? = null
class ListBean {
/**
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
index dbbbd33..e6a7719 100644
--- a/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/base/BaseApplication.kt
@@ -1,6 +1,9 @@
package com.casic.birmm.inspect.base
import android.app.Application
+import android.database.sqlite.SQLiteDatabase
+import com.casic.birmm.inspect.greendao.DaoMaster
+import com.casic.birmm.inspect.greendao.DaoSession
import com.casic.birmm.inspect.utils.FileUtils
import com.casic.birmm.inspect.utils.SaveKeyValues
import kotlin.properties.Delegates
@@ -9,6 +12,10 @@
companion object {
var instance: BaseApplication by Delegates.notNull()
+
+ private lateinit var daoSession: DaoSession
+
+ fun obtainInstance() = instance
}
override fun onCreate() {
@@ -16,5 +23,16 @@
instance = this
SaveKeyValues.initSharedPreferences()
FileUtils.initFileConfig()
+ initDataBase()
+ }
+
+ private fun initDataBase() {
+ val devOpenHelper = DaoMaster.DevOpenHelper(this, "Inspection.db")
+ val db: SQLiteDatabase = devOpenHelper.writableDatabase
+ daoSession = DaoMaster(db).newSession()
+ }
+
+ fun obtainDaoSession(): DaoSession {
+ return daoSession
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
new file mode 100644
index 0000000..14424ec
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/BlueToothBean.java
@@ -0,0 +1,27 @@
+package com.casic.birmm.inspect.bean;
+
+public class BlueToothBean {
+ private String blueToothName;
+ private String blueToothAddress;
+
+ public BlueToothBean(String blueToothName, String blueToothAddress) {
+ this.blueToothName = blueToothName;
+ this.blueToothAddress = blueToothAddress;
+ }
+
+ public String getBlueToothName() {
+ return blueToothName;
+ }
+
+ public void setBlueToothName(String blueToothName) {
+ this.blueToothName = blueToothName;
+ }
+
+ public String getBlueToothAddress() {
+ return blueToothAddress;
+ }
+
+ public void setBlueToothAddress(String blueToothAddress) {
+ this.blueToothAddress = blueToothAddress;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
new file mode 100644
index 0000000..d330f9e
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionBean.java
@@ -0,0 +1,143 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+//实体类必须是java的,因为GreenDao暂时不支持Kotlin
+@Entity
+public class InspectionBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String name; // 巡检标签
+ private String startTime; //开始事件
+ private String endTime; // 结束时间
+ private String date; // 日期
+ private double startLng; // 开始经度
+ private double startLat; // 开始纬度
+ private double endLng; // 结束经度
+ private double endLat; // 结束维度
+ private String routes; // 路线Json
+ private String user; // 巡检人
+
+ @Generated(hash = 563794757)
+ public InspectionBean(Long id, String serverMainId, String name,
+ String startTime, String endTime, String date, double startLng,
+ double startLat, double endLng, double endLat, String routes,
+ String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.name = name;
+ this.startTime = startTime;
+ this.endTime = endTime;
+ this.date = date;
+ this.startLng = startLng;
+ this.startLat = startLat;
+ this.endLng = endLng;
+ this.endLat = endLat;
+ this.routes = routes;
+ this.user = user;
+ }
+
+ @Generated(hash = 752533168)
+ public InspectionBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getStartTime() {
+ return this.startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getEndTime() {
+ return this.endTime;
+ }
+
+ public void setEndTime(String endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getDate() {
+ return this.date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public double getStartLng() {
+ return this.startLng;
+ }
+
+ public void setStartLng(double startLng) {
+ this.startLng = startLng;
+ }
+
+ public double getStartLat() {
+ return this.startLat;
+ }
+
+ public void setStartLat(double startLat) {
+ this.startLat = startLat;
+ }
+
+ public double getEndLng() {
+ return this.endLng;
+ }
+
+ public void setEndLng(double endLng) {
+ this.endLng = endLng;
+ }
+
+ public double getEndLat() {
+ return this.endLat;
+ }
+
+ public void setEndLat(double endLat) {
+ this.endLat = endLat;
+ }
+
+ public String getRoutes() {
+ return this.routes;
+ }
+
+ public void setRoutes(String routes) {
+ this.routes = routes;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
new file mode 100644
index 0000000..a605447
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/bean/TaskEventBean.java
@@ -0,0 +1,141 @@
+package com.casic.birmm.inspect.bean;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+
+@Entity
+public class TaskEventBean {
+ @Id(autoincrement = true)
+ private Long id;//本地数据库主键ID
+
+ private String serverMainId; //服务器数据库主键id
+ private String inspectionId; // 巡检标签
+ private String name; // 事件标题:巡检标签-事件类型
+ private String createTime; //开始时间
+ private double lng; // 经度
+ private double lat; // 维度
+ private String type; // 事件类型:自定义事件 or 报警事件
+ private double data; // 最大泄漏数值
+ private String images; // 图片
+ private String description; // 事件描述
+ private String user;
+
+ @Generated(hash = 1553594848)
+ public TaskEventBean(Long id, String serverMainId, String inspectionId,
+ String name, String createTime, double lng, double lat, String type,
+ double data, String images, String description, String user) {
+ this.id = id;
+ this.serverMainId = serverMainId;
+ this.inspectionId = inspectionId;
+ this.name = name;
+ this.createTime = createTime;
+ this.lng = lng;
+ this.lat = lat;
+ this.type = type;
+ this.data = data;
+ this.images = images;
+ this.description = description;
+ this.user = user;
+ }
+
+ @Generated(hash = 2137936048)
+ public TaskEventBean() {
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getServerMainId() {
+ return this.serverMainId;
+ }
+
+ public void setServerMainId(String serverMainId) {
+ this.serverMainId = serverMainId;
+ }
+
+ public String getInspectionId() {
+ return this.inspectionId;
+ }
+
+ public void setInspectionId(String inspectionId) {
+ this.inspectionId = inspectionId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public double getLng() {
+ return this.lng;
+ }
+
+ public void setLng(double lng) {
+ this.lng = lng;
+ }
+
+ public double getLat() {
+ return this.lat;
+ }
+
+ public void setLat(double lat) {
+ this.lat = lat;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getData() {
+ return this.data;
+ }
+
+ public void setData(double data) {
+ this.data = data;
+ }
+
+ public String getImages() {
+ return this.images;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getDescription() {
+ return this.description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getUser() {
+ return this.user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
new file mode 100644
index 0000000..c30cfea
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/ArrayList.kt
@@ -0,0 +1,20 @@
+package com.casic.birmm.inspect.extensions
+
+/**
+ * ArrayList扩展方法
+ */
+
+//将图片集合格式化成满足上传格式的数据
+fun ArrayList.reformat(): String {
+ if (this.isEmpty()) return ""
+ val builder = StringBuilder()
+ //循环遍历元素,同时得到元素index(下标)
+ this.forEachIndexed { index, s ->
+ if (index == this.size - 1) {
+ builder.append(s).append(",")
+ } else {
+ builder.append(s)
+ }
+ }
+ return builder.toString()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
new file mode 100644
index 0000000..9243dc5
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/Long.kt
@@ -0,0 +1,12 @@
+package com.casic.birmm.inspect.extensions
+
+import java.util.*
+
+/**
+ * Long扩展方法
+ */
+
+//随机生成inspectionId主键
+fun Long.id(): String {
+ return this.toString() + Random().nextInt(999).toString(3)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
index 164d636..52e71f0 100644
--- a/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/extensions/String.kt
@@ -9,12 +9,18 @@
import com.casic.birmm.inspect.utils.Constant
import com.casic.birmm.inspect.utils.SaveKeyValues
import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import java.util.*
import java.util.regex.Pattern
/**
* String扩展方法
*/
+//随机生成taskId主键
+fun String.id(): String {
+ return this + System.currentTimeMillis() + Random().nextInt(999).toString(3)
+}
+
//过滤空格,回车
fun String.filterString(): String {
if (this.isEmpty()) return this
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
new file mode 100644
index 0000000..a07c566
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoMaster.java
@@ -0,0 +1,99 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 1): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+ public static final int SCHEMA_VERSION = 1;
+
+ /** Creates underlying database table using DAOs. */
+ public static void createAllTables(Database db, boolean ifNotExists) {
+ InspectionBeanDao.createTable(db, ifNotExists);
+ TaskEventBeanDao.createTable(db, ifNotExists);
+ }
+
+ /** Drops underlying database table using DAOs. */
+ public static void dropAllTables(Database db, boolean ifExists) {
+ InspectionBeanDao.dropTable(db, ifExists);
+ TaskEventBeanDao.dropTable(db, ifExists);
+ }
+
+ /**
+ * WARNING: Drops all table on Upgrade! Use only during development.
+ * Convenience method using a {@link DevOpenHelper}.
+ */
+ public static DaoSession newDevSession(Context context, String name) {
+ Database db = new DevOpenHelper(context, name).getWritableDb();
+ DaoMaster daoMaster = new DaoMaster(db);
+ return daoMaster.newSession();
+ }
+
+ public DaoMaster(SQLiteDatabase db) {
+ this(new StandardDatabase(db));
+ }
+
+ public DaoMaster(Database db) {
+ super(db, SCHEMA_VERSION);
+ registerDaoClass(InspectionBeanDao.class);
+ registerDaoClass(TaskEventBeanDao.class);
+ }
+
+ public DaoSession newSession() {
+ return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+ }
+
+ public DaoSession newSession(IdentityScopeType type) {
+ return new DaoSession(db, type, daoConfigMap);
+ }
+
+ /**
+ * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+ */
+ public static abstract class OpenHelper extends DatabaseOpenHelper {
+ public OpenHelper(Context context, String name) {
+ super(context, name, SCHEMA_VERSION);
+ }
+
+ public OpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory, SCHEMA_VERSION);
+ }
+
+ @Override
+ public void onCreate(Database db) {
+ Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+ createAllTables(db, false);
+ }
+ }
+
+ /** WARNING: Drops all table on Upgrade! Use only during development. */
+ public static class DevOpenHelper extends OpenHelper {
+ public DevOpenHelper(Context context, String name) {
+ super(context, name);
+ }
+
+ public DevOpenHelper(Context context, String name, CursorFactory factory) {
+ super(context, name, factory);
+ }
+
+ @Override
+ public void onUpgrade(Database db, int oldVersion, int newVersion) {
+ Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+ dropAllTables(db, true);
+ onCreate(db);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
new file mode 100644
index 0000000..346e192
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/DaoSession.java
@@ -0,0 +1,62 @@
+package com.casic.birmm.inspect.greendao;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+import com.casic.birmm.inspect.greendao.InspectionBeanDao;
+import com.casic.birmm.inspect.greendao.TaskEventBeanDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ *
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+ private final DaoConfig inspectionBeanDaoConfig;
+ private final DaoConfig taskEventBeanDaoConfig;
+
+ private final InspectionBeanDao inspectionBeanDao;
+ private final TaskEventBeanDao taskEventBeanDao;
+
+ public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig>
+ daoConfigMap) {
+ super(db);
+
+ inspectionBeanDaoConfig = daoConfigMap.get(InspectionBeanDao.class).clone();
+ inspectionBeanDaoConfig.initIdentityScope(type);
+
+ taskEventBeanDaoConfig = daoConfigMap.get(TaskEventBeanDao.class).clone();
+ taskEventBeanDaoConfig.initIdentityScope(type);
+
+ inspectionBeanDao = new InspectionBeanDao(inspectionBeanDaoConfig, this);
+ taskEventBeanDao = new TaskEventBeanDao(taskEventBeanDaoConfig, this);
+
+ registerDao(InspectionBean.class, inspectionBeanDao);
+ registerDao(TaskEventBean.class, taskEventBeanDao);
+ }
+
+ public void clear() {
+ inspectionBeanDaoConfig.clearIdentityScope();
+ taskEventBeanDaoConfig.clearIdentityScope();
+ }
+
+ public InspectionBeanDao getInspectionBeanDao() {
+ return inspectionBeanDao;
+ }
+
+ public TaskEventBeanDao getTaskEventBeanDao() {
+ return taskEventBeanDao;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
new file mode 100644
index 0000000..b7077a3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionBeanDao.java
@@ -0,0 +1,237 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.InspectionBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "INSPECTION_BEAN".
+*/
+public class InspectionBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "INSPECTION_BEAN";
+
+ /**
+ * Properties of entity InspectionBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property Name = new Property(2, String.class, "name", false, "NAME");
+ public final static Property StartTime = new Property(3, String.class, "startTime", false, "START_TIME");
+ public final static Property EndTime = new Property(4, String.class, "endTime", false, "END_TIME");
+ public final static Property Date = new Property(5, String.class, "date", false, "DATE");
+ public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG");
+ public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT");
+ public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG");
+ public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT");
+ public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public InspectionBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public InspectionBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"INSPECTION_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"NAME\" TEXT," + // 2: name
+ "\"START_TIME\" TEXT," + // 3: startTime
+ "\"END_TIME\" TEXT," + // 4: endTime
+ "\"DATE\" TEXT," + // 5: date
+ "\"START_LNG\" REAL NOT NULL ," + // 6: startLng
+ "\"START_LAT\" REAL NOT NULL ," + // 7: startLat
+ "\"END_LNG\" REAL NOT NULL ," + // 8: endLng
+ "\"END_LAT\" REAL NOT NULL ," + // 9: endLat
+ "\"ROUTES\" TEXT," + // 10: routes
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"INSPECTION_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, InspectionBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(3, name);
+ }
+
+ String startTime = entity.getStartTime();
+ if (startTime != null) {
+ stmt.bindString(4, startTime);
+ }
+
+ String endTime = entity.getEndTime();
+ if (endTime != null) {
+ stmt.bindString(5, endTime);
+ }
+
+ String date = entity.getDate();
+ if (date != null) {
+ stmt.bindString(6, date);
+ }
+ stmt.bindDouble(7, entity.getStartLng());
+ stmt.bindDouble(8, entity.getStartLat());
+ stmt.bindDouble(9, entity.getEndLng());
+ stmt.bindDouble(10, entity.getEndLat());
+
+ String routes = entity.getRoutes();
+ if (routes != null) {
+ stmt.bindString(11, routes);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public InspectionBean readEntity(Cursor cursor, int offset) {
+ InspectionBean entity = new InspectionBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // name
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime
+ cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date
+ cursor.getDouble(offset + 6), // startLng
+ cursor.getDouble(offset + 7), // startLat
+ cursor.getDouble(offset + 8), // endLng
+ cursor.getDouble(offset + 9), // endLat
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, InspectionBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setName(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setStartTime(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setEndTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
+ entity.setStartLng(cursor.getDouble(offset + 6));
+ entity.setStartLat(cursor.getDouble(offset + 7));
+ entity.setEndLng(cursor.getDouble(offset + 8));
+ entity.setEndLat(cursor.getDouble(offset + 9));
+ entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(InspectionBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(InspectionBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(InspectionBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
new file mode 100644
index 0000000..3f040d3
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/greendao/TaskEventBeanDao.java
@@ -0,0 +1,245 @@
+package com.casic.birmm.inspect.greendao;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+import com.casic.birmm.inspect.bean.TaskEventBean;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * DAO for table "TASK_EVENT_BEAN".
+*/
+public class TaskEventBeanDao extends AbstractDao {
+
+ public static final String TABLENAME = "TASK_EVENT_BEAN";
+
+ /**
+ * Properties of entity TaskEventBean.
+ * Can be used for QueryBuilder and for referencing column names.
+ */
+ public static class Properties {
+ public final static Property Id = new Property(0, Long.class, "id", true, "_id");
+ public final static Property ServerMainId = new Property(1, String.class, "serverMainId", false, "SERVER_MAIN_ID");
+ public final static Property InspectionId = new Property(2, String.class, "inspectionId", false, "INSPECTION_ID");
+ public final static Property Name = new Property(3, String.class, "name", false, "NAME");
+ public final static Property CreateTime = new Property(4, String.class, "createTime", false, "CREATE_TIME");
+ public final static Property Lng = new Property(5, double.class, "lng", false, "LNG");
+ public final static Property Lat = new Property(6, double.class, "lat", false, "LAT");
+ public final static Property Type = new Property(7, String.class, "type", false, "TYPE");
+ public final static Property Data = new Property(8, double.class, "data", false, "DATA");
+ public final static Property Images = new Property(9, String.class, "images", false, "IMAGES");
+ public final static Property Description = new Property(10, String.class, "description", false, "DESCRIPTION");
+ public final static Property User = new Property(11, String.class, "user", false, "USER");
+ }
+
+
+ public TaskEventBeanDao(DaoConfig config) {
+ super(config);
+ }
+
+ public TaskEventBeanDao(DaoConfig config, DaoSession daoSession) {
+ super(config, daoSession);
+ }
+
+ /** Creates the underlying database table. */
+ public static void createTable(Database db, boolean ifNotExists) {
+ String constraint = ifNotExists? "IF NOT EXISTS ": "";
+ db.execSQL("CREATE TABLE " + constraint + "\"TASK_EVENT_BEAN\" (" + //
+ "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
+ "\"SERVER_MAIN_ID\" TEXT," + // 1: serverMainId
+ "\"INSPECTION_ID\" TEXT," + // 2: inspectionId
+ "\"NAME\" TEXT," + // 3: name
+ "\"CREATE_TIME\" TEXT," + // 4: createTime
+ "\"LNG\" REAL NOT NULL ," + // 5: lng
+ "\"LAT\" REAL NOT NULL ," + // 6: lat
+ "\"TYPE\" TEXT," + // 7: type
+ "\"DATA\" REAL NOT NULL ," + // 8: data
+ "\"IMAGES\" TEXT," + // 9: images
+ "\"DESCRIPTION\" TEXT," + // 10: description
+ "\"USER\" TEXT);"); // 11: user
+ }
+
+ /** Drops the underlying database table. */
+ public static void dropTable(Database db, boolean ifExists) {
+ String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"TASK_EVENT_BEAN\"";
+ db.execSQL(sql);
+ }
+
+ @Override
+ protected final void bindValues(DatabaseStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ protected final void bindValues(SQLiteStatement stmt, TaskEventBean entity) {
+ stmt.clearBindings();
+
+ Long id = entity.getId();
+ if (id != null) {
+ stmt.bindLong(1, id);
+ }
+
+ String serverMainId = entity.getServerMainId();
+ if (serverMainId != null) {
+ stmt.bindString(2, serverMainId);
+ }
+
+ String inspectionId = entity.getInspectionId();
+ if (inspectionId != null) {
+ stmt.bindString(3, inspectionId);
+ }
+
+ String name = entity.getName();
+ if (name != null) {
+ stmt.bindString(4, name);
+ }
+
+ String createTime = entity.getCreateTime();
+ if (createTime != null) {
+ stmt.bindString(5, createTime);
+ }
+ stmt.bindDouble(6, entity.getLng());
+ stmt.bindDouble(7, entity.getLat());
+
+ String type = entity.getType();
+ if (type != null) {
+ stmt.bindString(8, type);
+ }
+ stmt.bindDouble(9, entity.getData());
+
+ String images = entity.getImages();
+ if (images != null) {
+ stmt.bindString(10, images);
+ }
+
+ String description = entity.getDescription();
+ if (description != null) {
+ stmt.bindString(11, description);
+ }
+
+ String user = entity.getUser();
+ if (user != null) {
+ stmt.bindString(12, user);
+ }
+ }
+
+ @Override
+ public Long readKey(Cursor cursor, int offset) {
+ return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+ }
+
+ @Override
+ public TaskEventBean readEntity(Cursor cursor, int offset) {
+ TaskEventBean entity = new TaskEventBean( //
+ cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
+ cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // serverMainId
+ cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionId
+ cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // name
+ cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // createTime
+ cursor.getDouble(offset + 5), // lng
+ cursor.getDouble(offset + 6), // lat
+ cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // type
+ cursor.getDouble(offset + 8), // data
+ cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9), // images
+ cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // description
+ cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user
+ );
+ return entity;
+ }
+
+ @Override
+ public void readEntity(Cursor cursor, TaskEventBean entity, int offset) {
+ entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+ entity.setServerMainId(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+ entity.setInspectionId(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+ entity.setName(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+ entity.setCreateTime(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+ entity.setLng(cursor.getDouble(offset + 5));
+ entity.setLat(cursor.getDouble(offset + 6));
+ entity.setType(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
+ entity.setData(cursor.getDouble(offset + 8));
+ entity.setImages(cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9));
+ entity.setDescription(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+ entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+ }
+
+ @Override
+ protected final Long updateKeyAfterInsert(TaskEventBean entity, long rowId) {
+ entity.setId(rowId);
+ return rowId;
+ }
+
+ @Override
+ public Long getKey(TaskEventBean entity) {
+ if(entity != null) {
+ return entity.getId();
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean hasKey(TaskEventBean entity) {
+ return entity.getId() != null;
+ }
+
+ @Override
+ protected final boolean isEntityUpdateable() {
+ return true;
+ }
+
+}
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
new file mode 100644
index 0000000..dc635a4
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/EventListModel.kt
@@ -0,0 +1,41 @@
+package com.casic.birmm.inspect.model
+
+class EventListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var total = 0
+ var rows: MutableList? =
+ null
+
+ class RowsBean {
+ /**
+ * createTime : 2020-12-28 14:56:59
+ * data : -1
+ * description : ggg
+ * id : t1609138629320112121
+ * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
+ * inspectionId : 1609138451543200022
+ * lat : 39.915956
+ * lng : 116.268596
+ * name : sss
+ * type : 自定义事件
+ * user : 超超级管理员
+ */
+ var createTime: String? = null
+ var data = 0
+ var description: String? = null
+ var id: String? = null
+ var images: String? = null
+ var inspectionId: String? = null
+ var lat = 0.0
+ var lng = 0.0
+ var name: String? = null
+ var type: String? = null
+ var user: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
deleted file mode 100644
index de499aa..0000000
--- a/app/src/main/java/com/casic/birmm/inspect/model/EventModel.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.casic.birmm.inspect.model
-
-class EventModel {
- var code = 0
- var data: DataBean? = null
- var message: String? = null
- var isSuccess = false
-
- class DataBean {
- var total = 0
- var rows: MutableList? =
- null
-
- class RowsBean {
- /**
- * createTime : 2020-12-28 14:56:59
- * data : -1
- * description : ggg
- * id : t1609138629320112121
- * images : 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg
- * inspectionId : 1609138451543200022
- * lat : 39.915956
- * lng : 116.268596
- * name : sss
- * type : 自定义事件
- * user : 超超级管理员
- */
- var createTime: String? = null
- var data = 0
- var description: String? = null
- var id: String? = null
- var images: String? = null
- var inspectionId: String? = null
- var lat = 0.0
- var lng = 0.0
- var name: String? = null
- var type: String? = null
- var user: String? = null
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt
new file mode 100644
index 0000000..395b6e8
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/model/InspectListModel.kt
@@ -0,0 +1,43 @@
+package com.casic.birmm.inspect.model
+
+class InspectListModel {
+
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+
+ var total = 0
+ var rows: MutableList? = null
+
+ class RowsBean {
+ /**
+ * date : 2021年07月08日
+ * endLat : 39.915908
+ * endLng : 116.26876
+ * endTime : 2021-07-08 11:20:20
+ * id : 162570318141612121
+ * name : 测试
+ * routes : [[116.2694615342882,39.913364800347225],[116.26944390190972,39.913723415798614],[116.2694420030382,39.91406846788195],[116.26944363064236,39.91439860026042],[116.268654,39.915826],[116.268759765625,39.91590766059028]]
+ * startLat : 39.913365
+ * startLng : 116.269462
+ * startTime : 2021-07-08 08:13:01
+ * user : 王晓颖
+ */
+ var date: String? = null
+ var endLat = 0.0
+ var endLng = 0.0
+ var endTime: String? = null
+ var id: String? = null
+ var name: String? = null
+ var routes: String? = null
+ var startLat = 0.0
+ var startLng = 0.0
+ var startTime: String? = null
+ var user: String? = null
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/InspectModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/InspectModel.kt
deleted file mode 100644
index 558e716..0000000
--- a/app/src/main/java/com/casic/birmm/inspect/model/InspectModel.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.casic.birmm.inspect.model
-
-class InspectModel {
-
- var code = 0
- var data: DataBean? = null
- var message: String? = null
- var isSuccess = false
-
- class DataBean {
-
- var total = 0
- var rows: MutableList? = null
-
- class RowsBean {
- /**
- * date : 2021年07月08日
- * endLat : 39.915908
- * endLng : 116.26876
- * endTime : 2021-07-08 11:20:20
- * id : 162570318141612121
- * name : 测试
- * routes : [[116.2694615342882,39.913364800347225],[116.26944390190972,39.913723415798614],[116.2694420030382,39.91406846788195],[116.26944363064236,39.91439860026042],[116.268654,39.915826],[116.268759765625,39.91590766059028]]
- * startLat : 39.913365
- * startLng : 116.269462
- * startTime : 2021-07-08 08:13:01
- * user : 王晓颖
- */
- var date: String? = null
- var endLat = 0.0
- var endLng = 0.0
- var endTime: String? = null
- var id: String? = null
- var name: String? = null
- var routes: String? = null
- var startLat = 0.0
- var startLng = 0.0
- var startTime: String? = null
- var user: String? = null
-
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/birmm/inspect/model/TaskRecordModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/TaskRecordModel.kt
index ee6f1f6..beb469b 100644
--- a/app/src/main/java/com/casic/birmm/inspect/model/TaskRecordModel.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/model/TaskRecordModel.kt
@@ -1,5 +1,6 @@
package com.casic.birmm.inspect.model
+//同巡检Id的事件列表数据模型
class TaskRecordModel {
var code = 0
@@ -8,7 +9,7 @@
var isSuccess = false
class DataBean {
- var list: List? = null
+ var list: MutableList? = null
class ListBean {
/**
diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/BroadcastManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/BroadcastManager.kt
new file mode 100644
index 0000000..8201cb4
--- /dev/null
+++ b/app/src/main/java/com/casic/birmm/inspect/utils/BroadcastManager.kt
@@ -0,0 +1,89 @@
+package com.casic.birmm.inspect.utils
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
+import android.util.Log
+import com.casic.birmm.inspect.base.BaseApplication
+
+
+class BroadcastManager private constructor() {
+
+ private var mContext: Context = BaseApplication.instance
+ private var receiverMap: HashMap = HashMap()
+
+ companion object {
+ private const val Tag = "BroadcastManager"
+
+ val instance: BroadcastManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
+ BroadcastManager()
+ }
+ }
+
+ /**
+ * 添加单个Action,广播的初始化
+ */
+ fun addAction(action: String, receiver: BroadcastReceiver) {
+ try {
+ val filter = IntentFilter()
+ filter.addAction(action)
+ mContext.registerReceiver(receiver, filter)
+ receiverMap[action] = receiver
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ /**
+ * 添加多个Action,广播的初始化
+ */
+ fun addAction(actions: Array, receiver: BroadcastReceiver) {
+ try {
+ val filter = IntentFilter()
+ actions.forEach {
+ filter.addAction(it)
+ receiverMap[it] = receiver
+ }
+ mContext.registerReceiver(receiver, filter)
+ } catch (e: java.lang.Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ /**
+ * 发送广播
+ *
+ * @param action 唯一码
+ * @param msg 参数
+ */
+ fun sendBroadcast(action: String, msg: String) {
+ try {
+ val intent = Intent()
+ intent.action = action
+ intent.putExtra("data", msg)
+ mContext.sendBroadcast(intent)
+ Log.d(Tag, "发送广播: $msg")
+ } catch (e: java.lang.Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ /**
+ * 销毁广播
+ *
+ * @param actions action集合
+ */
+ fun destroy(vararg actions: String) {
+ try {
+ actions.forEach {
+ val receiver = receiverMap[it]
+ if (receiver != null) {
+ mContext.unregisterReceiver(receiver)
+ }
+ }
+ } catch (e: IllegalArgumentException) {
+ e.printStackTrace()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index a101c80..fe5f854 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 30
@@ -35,6 +36,12 @@
coroutines 'enable'
}
}
+
+ greendao {
+ schemaVersion 1//数据库版本号
+ targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
+ daoPackage 'com.casic.birmm.inspect.greendao'//设置DaoMaster、DaoSession、Dao包名
+ }
}
dependencies {
@@ -83,4 +90,6 @@
implementation 'com.amap.api:location:5.3.1'
//仿iOS风格的dialog库
implementation 'com.aihook:alertview:1.0.0'
+ //数据库框架
+ implementation 'org.greenrobot:greendao:3.3.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e17162..5dd8db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
index c98d39e..0ed4a6d 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/EventSearchListAdapter.kt
@@ -8,17 +8,17 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.EventModel
+import com.casic.birmm.inspect.model.EventListModel
/**
* 事件查询
* */
class EventSearchListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList? = dataRows
+ private val dataRows: MutableList? = dataRows
private var layoutInflater: LayoutInflater? = null
init {
diff --git a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
index 8f0278c..7e2f483 100644
--- a/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
+++ b/app/src/main/java/com/casic/birmm/inspect/adapter/InspectListAdapter.kt
@@ -7,15 +7,15 @@
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.casic.birmm.inspect.R
-import com.casic.birmm.inspect.model.InspectModel
+import com.casic.birmm.inspect.model.InspectListModel
class InspectListAdapter(
context: Context,
- dataRows: MutableList
+ dataRows: MutableList
) : RecyclerView.Adapter() {
- private val dataRows: MutableList