From 27fbf1ecd0429f50bc9633a038c9668de1cbf4b0 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 28 Aug 2024 16:21:00 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=E6=95=B0=E6=8D=AE=E9=97=AD=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevaToolsProvider.kt | 4 +- .../badcase/BadCaseManager.kt | 7 ++ .../badcase/consts/BadCaseConfig.kt | 3 + .../workorder/FaultReasonWindow.kt | 74 +++++++++---------- .../workorder/ReportTypeWindow.kt | 58 ++++++++++++++- .../workorder/TakeOverReasonWindow.kt | 57 ++++++-------- .../workorder/TakeOverRecordView.kt | 42 ++++++++++- .../workorder/WorkOrderApiService.kt | 4 +- .../workorder/WorkOrderManager.kt | 8 +- .../workorder/WorkOrderNetWorkModel.kt | 4 +- .../workorder/adapter/OrderReasonAdapter.kt | 9 ++- .../api/devatools/IDevaToolsProvider.kt | 6 +- .../call/devatools/CallerDevaToolsManager.kt | 8 +- 13 files changed, 192 insertions(+), 92 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index c58a2394db..8580d41720 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -619,8 +619,8 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener { WorkOrderManager.workOrderManager.problemPadAdd(padAddProblemReq) } - override fun getCategories(tenantId: Long, level: Int, parentId: Int) { - WorkOrderManager.workOrderManager.getCategories(tenantId, level, parentId) + override fun getCategories(tenantId: Long, level: Int, parentId: Int,type: Int,upType: Int) { + WorkOrderManager.workOrderManager.getCategories(tenantId, level, parentId,type, upType) } override fun queryAppUpgrade() { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt index 048c4bf586..8af21bd591 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt @@ -678,4 +678,11 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis this.lineName = lineName } + /** + * 获取租户ID + */ + override fun onTenantIdUpdate(tenantId: Long) { + BadCaseConfig.tenantId = tenantId + } + } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/consts/BadCaseConfig.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/consts/BadCaseConfig.kt index b162b700de..63cac39e6f 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/consts/BadCaseConfig.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/consts/BadCaseConfig.kt @@ -62,6 +62,9 @@ object BadCaseConfig { //本次问题是否已经触发一键上报 @JvmField var alreadyShowOneReport: Boolean = false + //租户ID + @JvmField + var tenantId: Long = 0 private const val resourceInitiative = "RESOURCE_INITIATIVE" //录包来源为主动录包 private const val resourceAiData = "RESOURCE_AI_DATA" //录包来源为AI数据采集 diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt index c25f0f64a0..cb38dca66c 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt @@ -59,6 +59,7 @@ import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.tts.base.SpeechUtils import com.zhjt.mogo_core_function_devatools.R +import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig import com.zhjt.mogo_core_function_devatools.workorder.adapter.OrderReasonAdapter import kotlin.math.absoluteValue @@ -120,6 +121,8 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, private var reportNote: String = "" //上报描述 private val reportType: Int = 2 //上报方式:0:小程序 1:司机屏 2:云端上报 + private var source: Int = 0 //操作源,0:类型;1:原因 + init { initFloatWindow() } @@ -166,16 +169,16 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, rvFaultList.layoutManager = linearLayoutManager orderReasonAdapter = OrderReasonAdapter() orderReasonAdapter.setListener(object: OrderReasonAdapter.ReasonSelectListener{ - override fun onSelectReason(reason: String, mSource: Int) { + override fun onSelectReason(reason: CategoryInfo, mSource: Int) { if(mSource == 0){ //类型 - tbFaultType.textOn = reason - tbFaultType.textOff = reason + tbFaultType.textOn = reason.name + tbFaultType.textOff = reason.name tbFaultType.performClick() }else{ //原因 - tbFaultReason.textOn = reason - tbFaultReason.textOff = reason + tbFaultReason.textOn = reason.name + tbFaultReason.textOff = reason.name tbFaultReason.performClick() } } @@ -203,21 +206,14 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, (rvFaultList.layoutParams as ConstraintLayout.LayoutParams).topToBottom = R.id.tbFaultType tbFaultReason.visibility = View.INVISIBLE - val list = ArrayList() - list.add("一级分类1") - list.add("一级分类2") - list.add("一级分类3") - list.add("一级分类4") - list.add("一级分类5") - list.add("一级分类6") - list.add("一级分类7") - list.add("一级分类8") - list.add("一级分类9") - list.add("一级分类10") - list.add("一级分类11") - list.add("一级分类12") - list.add("一级分类13") - orderReasonAdapter.setData(list,0) +// val list = ArrayList() +// list.add("一级分类1") +// orderReasonAdapter.setData(list,0) + + source = 0 + //获取故障二级分类即故障类型 + CallerDevaToolsManager.getCategories(BadCaseConfig.tenantId,2,1,1,0) + } else { buttonView.setCompoundDrawables(null, null, iconDown, null) //隐藏列表 @@ -232,21 +228,16 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, //展示列表 rvFaultList.visibility = View.VISIBLE (rvFaultList.layoutParams as ConstraintLayout.LayoutParams).topToBottom = R.id.tbFaultReason - val list = ArrayList() - list.add("二级分类1") - list.add("二级分类2") - list.add("二级分类3") - list.add("二级分类4") - list.add("二级分类5") - list.add("二级分类6") - list.add("二级分类7") - list.add("二级分类8") - list.add("二级分类9") - list.add("二级分类10") - list.add("二级分类11") - list.add("二级分类12") - list.add("二级分类13") - orderReasonAdapter.setData(list,1) + +// val list = ArrayList() +// list.add("二级分类1") +// orderReasonAdapter.setData(list,1) + + source = 1 + //获取故障三级分类即故障原因 + CallerDevaToolsManager.getCategories(BadCaseConfig.tenantId,3,1,1,0) + + } else { buttonView.setCompoundDrawables(null, null, iconDown, null) //隐藏列表 @@ -308,6 +299,10 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, } //上报 tvFaultReport.setOnClickListener{ + //故障码列表赋值 + BadCaseConfig.newFMInfoMsg?.fmInfoList?.forEach { + faultCodeList.add(it.faultId) + } val geocodeSearch = GeocodeSearch(mActivity) geocodeSearch.setOnGeocodeSearchListener(object: GeocodeSearch.OnGeocodeSearchListener { override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult?, p1: Int) { @@ -380,10 +375,6 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, } } - /** - * 听写监听器。 - */ - /** * 听写监听器。 */ @@ -530,6 +521,11 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, override fun getCategoriesSuccess(list: List) { super.getCategoriesSuccess(list) + ThreadUtils.runOnUiThread { + if(list.isNotEmpty()){ + orderReasonAdapter.setData(list,source) + } + } } override fun getCategoriesError(msg: String) { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt index 0b435b33b2..fe3a63ebe7 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt @@ -16,10 +16,23 @@ import android.widget.ImageView import android.widget.TextView import androidx.appcompat.widget.AppCompatTextView import androidx.constraintlayout.widget.Group +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.app.AppConfigInfo +import com.mogo.eagle.core.data.deva.report.CategoryInfo +import com.mogo.eagle.core.data.deva.report.PadAddProblemReq +import com.mogo.eagle.core.data.deva.report.PadProblemInfo import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.mogo.eagle.core.utilcode.util.ToastUtils import com.zhjt.mogo_core_function_devatools.R import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig @@ -56,6 +69,15 @@ class ReportTypeWindow constructor(activity: Activity): IMoGoDevaToolsListener { private var oneClickTimer: CountDownTimer ?= null + private var address: String = "" //故障地点 + private var faultCodeList = ArrayList() //故障码列表 + private var level1Id: Int = 0 //一级分类ID + private var level2Id: Int = 0 //二级分类ID + private var level3Id: Int = 0 //三级分类ID + private var lineName: String = "" //行驶路线 + private var reportNote: String = "" //上报描述 + private val reportType: Int = 2 //上报方式:0:小程序 1:司机屏 2:云端上报 + init { initFloatWindow() } @@ -97,8 +119,31 @@ class ReportTypeWindow constructor(activity: Activity): IMoGoDevaToolsListener { //一键上报 ivOneClickReport.setOnClickListener { hasReportOperate = true - //TODO + BadCaseConfig.newFMInfoMsg?.fmInfoList?.forEach { + faultCodeList.add(it.faultId) + } + val geocodeSearch = GeocodeSearch(mActivity) + geocodeSearch.setOnGeocodeSearchListener(object: GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult?, p1: Int) { + regeocodeResult?.regeocodeAddress?.formatAddress?.let { + address = it + } + val padProblemList= ArrayList() + val padProblemInfo = PadProblemInfo(address,faultCodeList,millis2String(System.currentTimeMillis()),level1Id, + level2Id,level3Id,lineName,reportNote,reportType, + SharedPrefsMgr.getInstance().getString("och_account","")) + padProblemList.add(padProblemInfo) + val padAddProblemReq = PadAddProblemReq(padProblemList, AppConfigInfo.plateNumber) + CallerDevaToolsManager.problemPadAdd(padAddProblemReq) + } + override fun onGeocodeSearched(p0: GeocodeResult?, p1: Int) { + + } + }) + val latLon = LatLonPoint(CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude, CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude) + val q = RegeocodeQuery(latLon,200f, GeocodeSearch.AMAP) + geocodeSearch.getFromLocationAsyn(q) } //故障类 tvReportTypeFault.setOnClickListener { @@ -197,6 +242,8 @@ class ReportTypeWindow constructor(activity: Activity): IMoGoDevaToolsListener { mWindowParams!!.y = yPosition mWindowManager!!.addView(mFloatLayout, mWindowParams) showOneCLickReportView() + //请求一键上报故障码 + CallerDevaToolsManager.getCategories(BadCaseConfig.tenantId,1,1,4,1) } } @@ -237,4 +284,13 @@ class ReportTypeWindow constructor(activity: Activity): IMoGoDevaToolsListener { ToastUtils.showShort("故障原因上报失败$msg") } + override fun getCategoriesSuccess(list: List) { + super.getCategoriesSuccess(list) + //TODO + } + + override fun getCategoriesError(msg: String) { + super.getCategoriesError(msg) + } + } \ No newline at end of file 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 d6b511259c..3acbf7ff9e 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 @@ -37,14 +37,17 @@ 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.devatools.CallerDevaToolsManager 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.ThreadUtils import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.tts.base.SpeechUtils import com.zhjt.mogo_core_function_devatools.R +import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig import com.zhjt.mogo_core_function_devatools.workorder.adapter.OrderReasonAdapter import kotlinx.coroutines.DelicateCoroutinesApi import kotlin.math.absoluteValue @@ -95,6 +98,8 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene private lateinit var orderReasonAdapter: OrderReasonAdapter private lateinit var mTakeOverRecordInfo: TakeOverRecordInfo + private var source: Int = 0 //操作源,0:类型;1:原因 + init { initFloatWindow() } @@ -137,16 +142,16 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene rvTakeOverList.layoutManager = linearLayoutManager orderReasonAdapter = OrderReasonAdapter() orderReasonAdapter.setListener(object: OrderReasonAdapter.ReasonSelectListener{ - override fun onSelectReason(reason: String, mSource: Int) { + override fun onSelectReason(reason: CategoryInfo, mSource: Int) { if(mSource == 0){ //类型 - tbTakeOverType.textOn = reason - tbTakeOverType.textOff = reason + tbTakeOverType.textOn = reason.name + tbTakeOverType.textOff = reason.name tbTakeOverType.performClick() }else{ //原因 - tbTakeOverReason.textOn = reason - tbTakeOverReason.textOff = reason + tbTakeOverReason.textOn = reason.name + tbTakeOverReason.textOff = reason.name tbTakeOverReason.performClick() } } @@ -173,21 +178,9 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene (rvTakeOverList.layoutParams as ConstraintLayout.LayoutParams).topToBottom = R.id.tbTakeOverType tbTakeOverReason.visibility = View.INVISIBLE - val list = ArrayList() - list.add("一级分类1") - list.add("一级分类2") - list.add("一级分类3") - list.add("一级分类4") - list.add("一级分类5") - list.add("一级分类6") - list.add("一级分类7") - list.add("一级分类8") - list.add("一级分类9") - list.add("一级分类10") - list.add("一级分类11") - list.add("一级分类12") - list.add("一级分类13") - orderReasonAdapter.setData(list,0) + source = 0 + //获取故障二级分类即故障类型 + CallerDevaToolsManager.getCategories(BadCaseConfig.tenantId,2,1,1,0) } else { buttonView.setCompoundDrawables(null, null, iconDown, null) //隐藏列表 @@ -202,21 +195,10 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene //展示列表 rvTakeOverList.visibility = View.VISIBLE (rvTakeOverList.layoutParams as ConstraintLayout.LayoutParams).topToBottom = R.id.tbTakeOverReason - val list = ArrayList() - list.add("二级分类1") - list.add("二级分类2") - list.add("二级分类3") - list.add("二级分类4") - list.add("二级分类5") - list.add("二级分类6") - list.add("二级分类7") - list.add("二级分类8") - list.add("二级分类9") - list.add("二级分类10") - list.add("二级分类11") - list.add("二级分类12") - list.add("二级分类13") - orderReasonAdapter.setData(list,1) + + source = 1 + //获取故障三级分类即故障原因 + CallerDevaToolsManager.getCategories(BadCaseConfig.tenantId,3,1,1,0) } else { buttonView.setCompoundDrawables(null, null, iconDown, null) //隐藏列表 @@ -430,6 +412,11 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene override fun getCategoriesSuccess(list: List) { super.getCategoriesSuccess(list) + ThreadUtils.runOnUiThread { + if(list.isNotEmpty()){ + orderReasonAdapter.setData(list,source) + } + } } override fun getCategoriesError(msg: String) { 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 590eab3f36..00f3d66ab5 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 @@ -2,18 +2,25 @@ package com.zhjt.mogo_core_function_devatools.workorder import android.content.Context import android.util.AttributeSet -import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.fragment.app.FragmentActivity import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.app.AppConfigInfo +import com.mogo.eagle.core.data.deva.report.PadAddProblemReq +import com.mogo.eagle.core.data.deva.report.PadProblemInfo 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.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.takeover.CallerTakeOverManager 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.TimeUtils.millis2String import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.Utils import com.zhjt.mogo_core_function_devatools.R @@ -27,7 +34,6 @@ import kotlinx.android.synthetic.main.view_take_over_record.view.tvRecordNoData import kotlinx.android.synthetic.main.view_take_over_record.view.tvTakeOverRecordDate import kotlinx.android.synthetic.main.view_take_over_record.view.tvUpload import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import me.jessyan.autosize.utils.AutoSizeUtils @@ -38,7 +44,7 @@ class TakeOverRecordView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr) { +) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoDevaToolsListener { companion object { const val TAG = "TakeOverRecordView" @@ -62,6 +68,7 @@ class TakeOverRecordView @JvmOverloads constructor( //关闭窗口 ivTakeOverRecordClose.setOnClickListener { clickListener?.onClose() + CallerDevaToolsListenerManager.removeListener(TAG) } //接管记录日期 tvTakeOverRecordDate.text = TimeUtils.millis2String(System.currentTimeMillis(), getYMDFormat()) @@ -102,7 +109,25 @@ class TakeOverRecordView @JvmOverloads constructor( //一键上传 tvUpload.setOnClickListener { + if(selectedUploadRecord.isEmpty()){ + ToastUtils.showShort("请选择需要上传的接管记录") + }else{ + val recordIterator = selectedUploadRecord.iterator() + val padProblemList= ArrayList() + while(recordIterator.hasNext()){ + val uploadRecord = recordIterator.next() + uploadRecord.let { + val padProblemInfo = PadProblemInfo(it.address, emptyList(), + millis2String(it.faultStartTime),it.level1Id,it.level2Id,it.level3Id, + it.lineName,it.reportNote,1, + SharedPrefsMgr.getInstance().getString("och_account","")) + padProblemList.add(padProblemInfo) + } + } + val padAddProblemReq = PadAddProblemReq(padProblemList, AppConfigInfo.plateNumber) + CallerDevaToolsManager.problemPadAdd(padAddProblemReq) + } } //删除 tvDeleteSelect.setOnClickListener { @@ -120,6 +145,7 @@ class TakeOverRecordView @JvmOverloads constructor( } //获取接管记录列表 refreshList() + CallerDevaToolsListenerManager.addListener(TAG,this) } /** @@ -151,4 +177,14 @@ class TakeOverRecordView @JvmOverloads constructor( fun onClose() } + override fun problemPadAddSuccess() { + super.problemPadAddSuccess() + + } + + override fun problemPadAddError(msg: String) { + super.problemPadAddError(msg) + + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderApiService.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderApiService.kt index f784fe4834..52400bd3ef 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderApiService.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderApiService.kt @@ -40,7 +40,9 @@ interface WorkOrderApiService { @Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId, @Header("tenantId") tenantId: Long, @Query("level") level: Int, - @Query("parentId") parentId: Int + @Query("parentId") parentId: Int, + @Query("type") type: Int, + @Query("upType") upType: Int ): Response> } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt index 0966002228..d42510dfac 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt @@ -82,9 +82,13 @@ class WorkOrderManager{ /** * 获取报障、接管、一键上报配置 + * @param tenantId 租户ID + * @param level 数据层级 + * @param type 类型 + * @param upType 一键上报的时候传1,其他分类的时候可以不传 */ - fun getCategories(tenantId: Long, level: Int, parentId: Int){ - workOrderNetWorkModel.getCategories(tenantId,level,parentId, + fun getCategories(tenantId: Long, level: Int, parentId: Int,type: Int,upType: Int){ + workOrderNetWorkModel.getCategories(tenantId,level,parentId,type,upType, onSuccess = { CallerDevaToolsListenerManager.invokeGetCategoriesSuccess(it) }, diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderNetWorkModel.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderNetWorkModel.kt index e73afa83d4..fd6f41f0a8 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderNetWorkModel.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderNetWorkModel.kt @@ -61,13 +61,13 @@ class WorkOrderNetWorkModel { /** * 获取报障、接管、一键上报配置 */ - fun getCategories(tenantId: Long, level: Int, parentId: Int, + fun getCategories(tenantId: Long, level: Int, parentId: Int,type: Int,upType: Int, onSuccess: ((List) -> Unit), onError: ((String) -> Unit)){ request>>{ loader{ apiResponseCall{ - getNetWorkApi(getOchUrl()).getCategories(MoGoAiCloudClientConfig.getInstance().serviceAppId,tenantId, level, parentId) + getNetWorkApi(getOchUrl()).getCategories(MoGoAiCloudClientConfig.getInstance().serviceAppId,tenantId, level, parentId,type,upType) } } onSuccess { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt index 3eddf7e2ed..115cca2dfe 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt @@ -5,6 +5,7 @@ import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.data.deva.report.CategoryInfo import com.zhjt.mogo_core_function_devatools.R /** @@ -12,11 +13,11 @@ import com.zhjt.mogo_core_function_devatools.R */ class OrderReasonAdapter: RecyclerView.Adapter() { - private var data: List ?= null + private var data: List ?= null private var selectListener: ReasonSelectListener ?= null private var mSource: Int = 0 //适配器数据来源,0:类型,1:原因 - fun setData(data: List,source: Int){ + fun setData(data: List, source: Int){ this.data = data mSource = source notifyDataSetChanged() @@ -31,7 +32,7 @@ class OrderReasonAdapter: RecyclerView.Adapter( override fun onBindViewHolder(holder: ReasonHolder, position: Int) { data?.let { val reason = it[position] - holder.tvReason.text = reason + holder.tvReason.text = reason.name holder.tvReason.setOnClickListener { selectListener?.onSelectReason(reason,mSource) } @@ -50,7 +51,7 @@ class OrderReasonAdapter: RecyclerView.Adapter( interface ReasonSelectListener{ //选择原因 - fun onSelectReason(reason: String,mSource: Int) + fun onSelectReason(reason: CategoryInfo,mSource: Int) } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index f09c16aa97..84c6925145 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -269,8 +269,12 @@ interface IDevaToolsProvider : IProvider { /** * 获取报障、接管、一键上报配置 + * @param tenantId 租户ID + * @param level 数据层级 + * @param type 类型 + * @param upType 一键上报的时候传1,其他分类的时候可以不传 */ - fun getCategories(tenantId: Long, level: Int, parentId: Int) + fun getCategories(tenantId: Long, level: Int, parentId: Int,type: Int,upType: Int) /** * 查询app是否有更新 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt index 53f8afcf86..c62f4c681c 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -373,9 +373,13 @@ object CallerDevaToolsManager { /** * 获取报障、接管、一键上报配置 + * @param tenantId 租户ID + * @param level 数据层级 + * @param type 类型 + * @param upType 一键上报的时候传1,其他分类的时候可以不传 */ - fun getCategories(tenantId: Long, level: Int, parentId: Int){ - devaToolsProviderApi?.getCategories(tenantId, level, parentId) + fun getCategories(tenantId: Long, level: Int, parentId: Int,type: Int,upType: Int){ + devaToolsProviderApi?.getCategories(tenantId, level, parentId,type, upType) } fun dockerVersion(dockerVersion: String?){