From 5f49985911da45ccfcd224207860eab8cb8c010d Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Fri, 23 Aug 2024 11:32:26 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=E6=95=B0=E6=8D=AE=E9=97=AD=E7=8E=AF-?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/takeover/RecordManager.kt | 6 ++--- .../core/function/takeover/db/RecordInfo.kt | 9 +++---- .../workorder/TakeOverReasonWindow.kt | 20 +++++++++------ .../workorder/TakeOverRecordView.kt | 25 ++++++++++++++++--- .../workorder/adapter/TakeOverListAdapter.kt | 3 ++- .../main/res/layout/view_take_over_reason.xml | 2 +- .../data/deva/report/TakeOverRecordInfo.kt | 2 +- 7 files changed, 44 insertions(+), 23 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/takeover/RecordManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/takeover/RecordManager.kt index e7235038a0..006b108e58 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/takeover/RecordManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/takeover/RecordManager.kt @@ -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 { diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/takeover/db/RecordInfo.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/takeover/db/RecordInfo.kt index 93ad9ecb72..a1a9c29ccf 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/takeover/db/RecordInfo.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/takeover/db/RecordInfo.kt @@ -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, diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt index 0ea8899aa9..6d2e5dd8d7 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt @@ -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) { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt index 7b00d13e9b..4bd688116e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt @@ -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) { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt index 17fb69cfa8..280ca9898b 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt @@ -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 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){ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml index 69a1186274..55140a6af9 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml @@ -201,7 +201,7 @@ />