[6.6.0]数据闭环-数据库调整

This commit is contained in:
xuxinchao
2024-08-23 11:32:26 +08:00
parent af7a388b84
commit 5f49985911
7 changed files with 44 additions and 23 deletions

View File

@@ -27,7 +27,7 @@ object RecordManager {
*/
fun insertRecord(context: Context,takeOverRecordInfo: TakeOverRecordInfo){
takeOverRecordInfo.let {
val recordInfo = RecordInfo(null,it.address,it.faultStartTime,it.level1Id,
val recordInfo = RecordInfo(it.faultStartTime,it.address,it.level1Id,
it.level2Id,it.level3Id,it.lineName,it.reportNote,it.reportStatus)
if (Thread.currentThread() == Looper.getMainLooper().thread){
scope.launch{
@@ -59,7 +59,7 @@ object RecordManager {
*/
fun updateRecord(context: Context,takeOverRecordInfo: TakeOverRecordInfo){
takeOverRecordInfo.let{
val recordInfo = RecordInfo(null,it.address,it.faultStartTime,it.level1Id,
val recordInfo = RecordInfo(it.faultStartTime,it.address,it.level1Id,
it.level2Id,it.level3Id,it.lineName,it.reportNote,it.reportStatus)
if (Thread.currentThread() == Looper.getMainLooper().thread){
scope.launch{
@@ -91,7 +91,7 @@ object RecordManager {
*/
fun deleteRecord(context: Context, takeOverRecordInfo: TakeOverRecordInfo) {
takeOverRecordInfo.let{
val recordInfo = RecordInfo(null,it.address,it.faultStartTime,it.level1Id,
val recordInfo = RecordInfo(it.faultStartTime,it.address,it.level1Id,
it.level2Id,it.level3Id,it.lineName,it.reportNote,it.reportStatus)
if (Thread.currentThread() == Looper.getMainLooper().thread){
scope.launch {

View File

@@ -9,15 +9,12 @@ import androidx.room.PrimaryKey
*/
@Entity(tableName = "take_over_record")
data class RecordInfo(
//自增主键
@PrimaryKey(autoGenerate = true)
var id: Int ?= null,
//故障开始时间 主键
@PrimaryKey(autoGenerate = false)
val faultStartTime: Long,
//故障地点
@ColumnInfo
val address: String,
//故障开始时间 yyyy-MM-dd HH:mm:ss
@ColumnInfo
val faultStartTime: String,
//一级分类ID
@ColumnInfo
var level1Id: Int,

View File

@@ -34,8 +34,10 @@ import com.iflytek.cloud.RecognizerResult
import com.iflytek.cloud.SpeechError
import com.iflytek.cloud.SpeechRecognizer
import com.mogo.eagle.core.data.deva.report.CategoryInfo
import com.mogo.eagle.core.data.deva.report.TakeOverRecordInfo
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
import com.mogo.eagle.core.function.call.takeover.CallerTakeOverManager
import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.JsonParser
import com.mogo.eagle.core.utilcode.util.TimeUtils
@@ -84,13 +86,14 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
private lateinit var tbTakeOverReason: ToggleButton
private lateinit var etNoteInput: AppCompatEditText
private lateinit var ivNoteAudio: ImageView
private lateinit var tvTakeOverReport: TextView
private lateinit var tvTakeOverSave: TextView
private lateinit var tvTakeOverCancel: TextView
private lateinit var rvTakeOverList: RecyclerView
private lateinit var tvUploadSuccess: AppCompatTextView
private lateinit var takeOverReasonGroup: Group
private lateinit var orderReasonAdapter: OrderReasonAdapter
private lateinit var mTakeOverRecordInfo: TakeOverRecordInfo
init {
initFloatWindow()
@@ -124,7 +127,7 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
tbTakeOverReason = mFloatLayout.findViewById(R.id.tbTakeOverReason)
etNoteInput = mFloatLayout.findViewById(R.id.etNoteInput)
ivNoteAudio = mFloatLayout.findViewById(R.id.ivNoteAudio)
tvTakeOverReport = mFloatLayout.findViewById(R.id.tvTakeOverReport)
tvTakeOverSave = mFloatLayout.findViewById(R.id.tvTakeOverSave)
tvTakeOverCancel = mFloatLayout.findViewById(R.id.tvTakeOverCancel)
rvTakeOverList = mFloatLayout.findViewById(R.id.rvTakeOverList)
tvUploadSuccess = mFloatLayout.findViewById(R.id.tvUploadSuccess)
@@ -249,8 +252,10 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
setAudio(audioStatus)
}
//上报
tvTakeOverReport.setOnClickListener{
//TODO 保存到数据库‘
tvTakeOverSave.setOnClickListener{
mTakeOverRecordInfo.reportNote = etNoteInput.text.toString()
CallerTakeOverManager.updateRecord(mActivity,mTakeOverRecordInfo)
clickListener?.onSaveReason()
hideFloatWindow()
}
//取消
@@ -384,7 +389,7 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
return true
}
fun showFloatWindow() {
fun showFloatWindow(takeOverRecordInfo: TakeOverRecordInfo) {
if (mFloatLayout.parent == null) {
val metrics = DisplayMetrics()
// 默认固定位置,靠屏幕右边缘的中间
@@ -392,9 +397,8 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
mWindowParams!!.x = metrics.widthPixels-890
mWindowParams!!.y = metrics.heightPixels - BarUtils.getStatusBarHeight()-1140
mWindowManager!!.addView(mFloatLayout, mWindowParams)
}
mTakeOverRecordInfo = takeOverRecordInfo
}
fun hideFloatWindow() {
@@ -409,7 +413,7 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
}
interface ClickListener {
fun closeWindow()
fun onSaveReason()
}
override fun getCategoriesSuccess(list: List<CategoryInfo>) {

View File

@@ -14,6 +14,7 @@ import com.mogo.eagle.core.utilcode.kotlin.lifeCycleScope
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.getYMDFormat
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.Utils
import com.zhjt.mogo_core_function_devatools.R
import com.zhjt.mogo_core_function_devatools.workorder.adapter.BottomDecoration
@@ -72,7 +73,13 @@ class TakeOverRecordView @JvmOverloads constructor(
val activity = context as? FragmentActivity
?: throw IllegalStateException("please ensure context is FragmentActivity.")
val takeOverReasonWindow = TakeOverReasonWindow(activity)
takeOverReasonWindow.showFloatWindow()
takeOverReasonWindow.setClickListener(object: TakeOverReasonWindow.ClickListener{
override fun onSaveReason() {
//刷新列表 TODO 应该局部刷新
refreshList()
}
})
takeOverReasonWindow.showFloatWindow(takeOverRecordInfo)
}
override fun onSelectRecord(
@@ -99,9 +106,22 @@ class TakeOverRecordView @JvmOverloads constructor(
}
//删除
tvDeleteSelect.setOnClickListener {
// CallerTakeOverManager.deleteRecord(context,)
if(selectedUploadRecord.isEmpty()){
ToastUtils.showShort("请选择需要删除的接管记录")
}else{
selectedUploadRecord.forEach {
CallerTakeOverManager.deleteRecord(context,it)
}
refreshList()
}
}
refreshList()
}
/**
* 刷新接管记录列表
*/
private fun refreshList(){
scope.launch(Dispatchers.IO){
val recordList= CallerTakeOverManager.getAllRecord(context)
ThreadUtils.runOnUiThread {
@@ -117,7 +137,6 @@ class TakeOverRecordView @JvmOverloads constructor(
}
}
}
fun setOnClickListener(clickListener: ClickListener) {

View File

@@ -10,6 +10,7 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.data.deva.report.TakeOverRecordInfo
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.zhjt.mogo_core_function_devatools.R
@@ -38,7 +39,7 @@ class TakeOverListAdapter(private val context: Context): RecyclerView.Adapter<Ta
holder.cbRecordSelect.setOnCheckedChangeListener { _, isChecked ->
clickListener?.onSelectRecord(recordEntity,isChecked)
}
holder.tvFaultStartTime.text = recordEntity.faultStartTime
holder.tvFaultStartTime.text = TimeUtils.millis2String(recordEntity.faultStartTime)
holder.tvLineName.text = recordEntity.lineName
holder.tvTakeOverReason.text = recordEntity.reportNote
if(recordEntity.reportStatus){

View File

@@ -201,7 +201,7 @@
/>
<TextView
android:id="@+id/tvTakeOverReport"
android:id="@+id/tvTakeOverSave"
android:layout_width="@dimen/dp_380"
android:layout_height="@dimen/dp_80"
app:layout_constraintLeft_toLeftOf="parent"

View File

@@ -11,6 +11,6 @@ package com.mogo.eagle.core.data.deva.report
* @param reportNote 上报描述
* @param reportStatus 上传状态 false:未上传,可编辑 true:已上传,不可编辑
*/
data class TakeOverRecordInfo(var faultStartTime: String, var address:String,
data class TakeOverRecordInfo(var faultStartTime: Long, var address:String,
var level1Id: Int, var level2Id: Int, var level3Id: Int,
var lineName: String, var reportNote: String, var reportStatus: Boolean)