diff --git a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt index ac06760..3b26f05 100644 --- a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt @@ -232,7 +232,7 @@ /** * 上传自由巡检过程中发现的标识器 */ - suspend fun uploadTaskMarker(taskId: String, models: ArrayList): String { + suspend fun uploadTaskMarker(taskId: String?, models: ArrayList): String { val param = JsonObject() param.addProperty("taskId", taskId) param.addProperty("ids", models.reformat()) diff --git a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt index ac06760..3b26f05 100644 --- a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt @@ -232,7 +232,7 @@ /** * 上传自由巡检过程中发现的标识器 */ - suspend fun uploadTaskMarker(taskId: String, models: ArrayList): String { + suspend fun uploadTaskMarker(taskId: String?, models: ArrayList): String { val param = JsonObject() param.addProperty("taskId", taskId) param.addProperty("ids", models.reformat()) diff --git a/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt b/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt index 3b1442c..c067711 100644 --- a/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt @@ -9,7 +9,7 @@ class DataBaseManager private constructor() { companion object { //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } @@ -102,10 +102,10 @@ return taskBeanDao.queryBuilder().where(TaskBeanDao.Properties.TaskId.eq(taskId)).list() } - fun queryTaskLabelByIdAndState(markerId: String, state: String): TaskBean? { + fun queryTaskMarkerById(markerId: String, state: String): TaskBean? { return taskBeanDao.queryBuilder() .where( - TaskBeanDao.Properties.MarkerId.eq(markerId), + TaskBeanDao.Properties.MarkerRealId.eq(markerId), TaskBeanDao.Properties.State.eq(state) ).list().firstOrNull() } diff --git a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt index ac06760..3b26f05 100644 --- a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt @@ -232,7 +232,7 @@ /** * 上传自由巡检过程中发现的标识器 */ - suspend fun uploadTaskMarker(taskId: String, models: ArrayList): String { + suspend fun uploadTaskMarker(taskId: String?, models: ArrayList): String { val param = JsonObject() param.addProperty("taskId", taskId) param.addProperty("ids", models.reformat()) diff --git a/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt b/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt index 3b1442c..c067711 100644 --- a/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt @@ -9,7 +9,7 @@ class DataBaseManager private constructor() { companion object { //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } @@ -102,10 +102,10 @@ return taskBeanDao.queryBuilder().where(TaskBeanDao.Properties.TaskId.eq(taskId)).list() } - fun queryTaskLabelByIdAndState(markerId: String, state: String): TaskBean? { + fun queryTaskMarkerById(markerId: String, state: String): TaskBean? { return taskBeanDao.queryBuilder() .where( - TaskBeanDao.Properties.MarkerId.eq(markerId), + TaskBeanDao.Properties.MarkerRealId.eq(markerId), TaskBeanDao.Properties.State.eq(state) ).list().firstOrNull() } diff --git a/app/src/main/java/com/casic/detector/view/MainActivity.kt b/app/src/main/java/com/casic/detector/view/MainActivity.kt index 8e5c5ac..bb448fe 100644 --- a/app/src/main/java/com/casic/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/view/MainActivity.kt @@ -110,10 +110,8 @@ private val kTag = "MainActivity" private val context = this@MainActivity - private val gpioManager by lazy { GpioManager() } private val samplePopupWindow by lazy { SamplePopupWindow(this) } private val gson by lazy { Gson() } - private val locationHub by lazy { LocationHub(this) } private val regionRadius by lazy { LocaleConstant.RADIUS_SIZE.dp2px(this) } private val backDrawables by lazy { HashMap() } private val installDialog by lazy { InstallMarkerDialog(this) } @@ -128,11 +126,13 @@ private var ids = ArrayList() private var signalTask: TimerTask? = null private var searchMarkerTimer: Timer? = null + private var taskId: String? = null private lateinit var aMap: AMap private lateinit var task: TaskBean - private lateinit var taskId: String /***inner class 需要用到*****start*/ + private val gpioManager by lazy { GpioManager() } + private val locationHub by lazy { LocationHub(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val attr = AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_ALARM) @@ -142,6 +142,7 @@ private var soundResourceId = 0 private var slowSoundResourceId = 0 private var fastSoundResourceId = 0 + private var isExecuteTask = false /***inner class 需要用到*****end*/ @@ -325,25 +326,31 @@ override fun onActionItemClick(position: Int) { task = tasks[position] SaveKeyValues.putValue(LocaleConstant.TASK_ID, task.taskId) - AlertControlDialog.Builder().setContext(context).setTitle("提示") - .setMessage("请选择操作方式").setPositiveButton("执行工单") + AlertControlDialog.Builder() + .setContext(context) + .setTitle("提示") + .setMessage("请选择操作方式") + .setPositiveButton("执行工单") .setNegativeButton("提交工单") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - detectRedrawGraphic(task.taskId) - val latLng = LatLng( task.lat.toDouble(), task.lng.toDouble() ) aMap.moveCamera( CameraUpdateFactory.newLatLngZoom(latLng, 16f) ) + //执行工单 uploadTask(task.taskId, "1") + detectRedrawGraphic(task.taskId) + isExecuteTask = true } override fun onCancelClick() { + //提交工单 uploadTask(task.taskId, "2") + isExecuteTask = false } }).build().show() } @@ -364,9 +371,25 @@ binding.detectionButton.setOnClickListener { /** * 改为Dialog方式,避免频繁打开/关闭串口 + * + * 如果开启自由巡检就不让探测 * */ - searchDialog.show() + if (isFreeTask) { + AlertMessageDialog.Builder() + .setContext(this) + .setTitle("温馨提示") + .setMessage("正在自由巡检任务中,请完成此次任务之后再使用探测功能") + .setPositiveButton("好的") + .setOnDialogButtonClickListener(object : + AlertMessageDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + + } + }).build().show() + } else { + searchDialog.show() // searchNewDialog.show() + } } //自由巡检 @@ -382,8 +405,12 @@ //降低串口电位 gpioManager.setGpioLow("18") - taskViewModel.uploadTaskMarker(taskId, ids) binding.stopFreeTaskButton.visibility = View.GONE + if (taskId.isNullOrBlank()) { + "任务ID异常,无法提交任务,请联系服务器管理员".show(context) + return + } + taskViewModel.uploadTaskMarker(taskId, ids) } }).build().show() true @@ -452,7 +479,7 @@ LoadingDialogHub.show(this, "标识器安装中,请稍后...") } else if (searchDialog.isDetectMarker) { searchDialog.taskBean?.apply { - "标识器${this.markerId}已探测!".show(context) + "标识器${this.markerRealId}已探测!".show(context) DataBaseManager.get.updateTaskLabel(this) } } else { @@ -463,8 +490,14 @@ else -> { if (installDialog.isInstallMarker) { installDialog.dismiss() - installDialog.isInstallMarker = false } + + if (searchDialog.isDetectMarker) { + searchDialog.taskBean?.apply { + detectRedrawGraphic(taskId) + } + } + LoadingDialogHub.dismiss() } } @@ -1033,6 +1066,7 @@ //降低串口电位 gpioManager.setGpioLow("18") soundPool.autoPause() + isInstallMarker = false super.dismiss() } @@ -1294,6 +1328,14 @@ //角度 degreeCache["lastDegree"] = 0f + + if (isExecuteTask) { + binding.taskStateView.visibility = View.GONE + binding.taskStateView.isSelected = false + } else { + binding.taskStateView.visibility = View.VISIBLE + binding.taskStateView.isSelected = true + } } fun bindingValue(hex: String) { @@ -1404,13 +1446,15 @@ binding.searchResultView.setTextColor(Color.parseColor("#428d00")) binding.searchResultView.setBackgroundResource(R.mipmap.bg_small_text_green) - //自动上传标识器 - taskBean = DataBaseManager.get.queryTaskLabelByIdAndState(markerId, "未开始") - taskBean?.apply { - /** - * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 - * */ - taskViewModel.uploadMarker(taskCode) + //工单开始后才自动上传标识器 + if (isExecuteTask) { + taskBean = DataBaseManager.get.queryTaskMarkerById(markerId, "未开始") + taskBean?.apply { + /** + * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 + * */ + taskViewModel.uploadMarker(taskCode) + } } } } @@ -1616,14 +1660,15 @@ binding.searchResultView.setBackgroundResource(R.mipmap.bg_small_text_green) //自动上传标识器 - val taskBean = - DataBaseManager.get.queryTaskLabelByIdAndState(markerId, "未开始") -// taskBean?.apply { -// /** -// * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 -// * */ -// taskViewModel.uploadMarker(taskCode) -// } + if (isExecuteTask) { + val taskBean = DataBaseManager.get.queryTaskMarkerById(markerId, "未开始") + taskBean?.apply { + /** + * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 + * */ + taskViewModel.uploadMarker(taskCode) + } + } } } } diff --git a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt index ac06760..3b26f05 100644 --- a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt @@ -232,7 +232,7 @@ /** * 上传自由巡检过程中发现的标识器 */ - suspend fun uploadTaskMarker(taskId: String, models: ArrayList): String { + suspend fun uploadTaskMarker(taskId: String?, models: ArrayList): String { val param = JsonObject() param.addProperty("taskId", taskId) param.addProperty("ids", models.reformat()) diff --git a/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt b/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt index 3b1442c..c067711 100644 --- a/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt @@ -9,7 +9,7 @@ class DataBaseManager private constructor() { companion object { //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } @@ -102,10 +102,10 @@ return taskBeanDao.queryBuilder().where(TaskBeanDao.Properties.TaskId.eq(taskId)).list() } - fun queryTaskLabelByIdAndState(markerId: String, state: String): TaskBean? { + fun queryTaskMarkerById(markerId: String, state: String): TaskBean? { return taskBeanDao.queryBuilder() .where( - TaskBeanDao.Properties.MarkerId.eq(markerId), + TaskBeanDao.Properties.MarkerRealId.eq(markerId), TaskBeanDao.Properties.State.eq(state) ).list().firstOrNull() } diff --git a/app/src/main/java/com/casic/detector/view/MainActivity.kt b/app/src/main/java/com/casic/detector/view/MainActivity.kt index 8e5c5ac..bb448fe 100644 --- a/app/src/main/java/com/casic/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/view/MainActivity.kt @@ -110,10 +110,8 @@ private val kTag = "MainActivity" private val context = this@MainActivity - private val gpioManager by lazy { GpioManager() } private val samplePopupWindow by lazy { SamplePopupWindow(this) } private val gson by lazy { Gson() } - private val locationHub by lazy { LocationHub(this) } private val regionRadius by lazy { LocaleConstant.RADIUS_SIZE.dp2px(this) } private val backDrawables by lazy { HashMap() } private val installDialog by lazy { InstallMarkerDialog(this) } @@ -128,11 +126,13 @@ private var ids = ArrayList() private var signalTask: TimerTask? = null private var searchMarkerTimer: Timer? = null + private var taskId: String? = null private lateinit var aMap: AMap private lateinit var task: TaskBean - private lateinit var taskId: String /***inner class 需要用到*****start*/ + private val gpioManager by lazy { GpioManager() } + private val locationHub by lazy { LocationHub(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val attr = AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_ALARM) @@ -142,6 +142,7 @@ private var soundResourceId = 0 private var slowSoundResourceId = 0 private var fastSoundResourceId = 0 + private var isExecuteTask = false /***inner class 需要用到*****end*/ @@ -325,25 +326,31 @@ override fun onActionItemClick(position: Int) { task = tasks[position] SaveKeyValues.putValue(LocaleConstant.TASK_ID, task.taskId) - AlertControlDialog.Builder().setContext(context).setTitle("提示") - .setMessage("请选择操作方式").setPositiveButton("执行工单") + AlertControlDialog.Builder() + .setContext(context) + .setTitle("提示") + .setMessage("请选择操作方式") + .setPositiveButton("执行工单") .setNegativeButton("提交工单") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - detectRedrawGraphic(task.taskId) - val latLng = LatLng( task.lat.toDouble(), task.lng.toDouble() ) aMap.moveCamera( CameraUpdateFactory.newLatLngZoom(latLng, 16f) ) + //执行工单 uploadTask(task.taskId, "1") + detectRedrawGraphic(task.taskId) + isExecuteTask = true } override fun onCancelClick() { + //提交工单 uploadTask(task.taskId, "2") + isExecuteTask = false } }).build().show() } @@ -364,9 +371,25 @@ binding.detectionButton.setOnClickListener { /** * 改为Dialog方式,避免频繁打开/关闭串口 + * + * 如果开启自由巡检就不让探测 * */ - searchDialog.show() + if (isFreeTask) { + AlertMessageDialog.Builder() + .setContext(this) + .setTitle("温馨提示") + .setMessage("正在自由巡检任务中,请完成此次任务之后再使用探测功能") + .setPositiveButton("好的") + .setOnDialogButtonClickListener(object : + AlertMessageDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + + } + }).build().show() + } else { + searchDialog.show() // searchNewDialog.show() + } } //自由巡检 @@ -382,8 +405,12 @@ //降低串口电位 gpioManager.setGpioLow("18") - taskViewModel.uploadTaskMarker(taskId, ids) binding.stopFreeTaskButton.visibility = View.GONE + if (taskId.isNullOrBlank()) { + "任务ID异常,无法提交任务,请联系服务器管理员".show(context) + return + } + taskViewModel.uploadTaskMarker(taskId, ids) } }).build().show() true @@ -452,7 +479,7 @@ LoadingDialogHub.show(this, "标识器安装中,请稍后...") } else if (searchDialog.isDetectMarker) { searchDialog.taskBean?.apply { - "标识器${this.markerId}已探测!".show(context) + "标识器${this.markerRealId}已探测!".show(context) DataBaseManager.get.updateTaskLabel(this) } } else { @@ -463,8 +490,14 @@ else -> { if (installDialog.isInstallMarker) { installDialog.dismiss() - installDialog.isInstallMarker = false } + + if (searchDialog.isDetectMarker) { + searchDialog.taskBean?.apply { + detectRedrawGraphic(taskId) + } + } + LoadingDialogHub.dismiss() } } @@ -1033,6 +1066,7 @@ //降低串口电位 gpioManager.setGpioLow("18") soundPool.autoPause() + isInstallMarker = false super.dismiss() } @@ -1294,6 +1328,14 @@ //角度 degreeCache["lastDegree"] = 0f + + if (isExecuteTask) { + binding.taskStateView.visibility = View.GONE + binding.taskStateView.isSelected = false + } else { + binding.taskStateView.visibility = View.VISIBLE + binding.taskStateView.isSelected = true + } } fun bindingValue(hex: String) { @@ -1404,13 +1446,15 @@ binding.searchResultView.setTextColor(Color.parseColor("#428d00")) binding.searchResultView.setBackgroundResource(R.mipmap.bg_small_text_green) - //自动上传标识器 - taskBean = DataBaseManager.get.queryTaskLabelByIdAndState(markerId, "未开始") - taskBean?.apply { - /** - * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 - * */ - taskViewModel.uploadMarker(taskCode) + //工单开始后才自动上传标识器 + if (isExecuteTask) { + taskBean = DataBaseManager.get.queryTaskMarkerById(markerId, "未开始") + taskBean?.apply { + /** + * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 + * */ + taskViewModel.uploadMarker(taskCode) + } } } } @@ -1616,14 +1660,15 @@ binding.searchResultView.setBackgroundResource(R.mipmap.bg_small_text_green) //自动上传标识器 - val taskBean = - DataBaseManager.get.queryTaskLabelByIdAndState(markerId, "未开始") -// taskBean?.apply { -// /** -// * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 -// * */ -// taskViewModel.uploadMarker(taskCode) -// } + if (isExecuteTask) { + val taskBean = DataBaseManager.get.queryTaskMarkerById(markerId, "未开始") + taskBean?.apply { + /** + * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 + * */ + taskViewModel.uploadMarker(taskCode) + } + } } } } diff --git a/app/src/main/java/com/casic/detector/vm/TaskViewModel.kt b/app/src/main/java/com/casic/detector/vm/TaskViewModel.kt index 800abe7..dbb83fc 100644 --- a/app/src/main/java/com/casic/detector/vm/TaskViewModel.kt +++ b/app/src/main/java/com/casic/detector/vm/TaskViewModel.kt @@ -39,7 +39,7 @@ it.printStackTrace() }) - fun uploadTaskMarker(taskId: String, models: ArrayList) = launch({ + fun uploadTaskMarker(taskId: String?, models: ArrayList) = launch({ val response = RetrofitServiceManager.uploadTaskMarker(taskId, models) if (response.getResponseState()) { val element = JsonParser.parseString(response) diff --git a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt index ac06760..3b26f05 100644 --- a/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/detector/retrofit/RetrofitServiceManager.kt @@ -232,7 +232,7 @@ /** * 上传自由巡检过程中发现的标识器 */ - suspend fun uploadTaskMarker(taskId: String, models: ArrayList): String { + suspend fun uploadTaskMarker(taskId: String?, models: ArrayList): String { val param = JsonObject() param.addProperty("taskId", taskId) param.addProperty("ids", models.reformat()) diff --git a/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt b/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt index 3b1442c..c067711 100644 --- a/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/detector/utils/DataBaseManager.kt @@ -9,7 +9,7 @@ class DataBaseManager private constructor() { companion object { //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } @@ -102,10 +102,10 @@ return taskBeanDao.queryBuilder().where(TaskBeanDao.Properties.TaskId.eq(taskId)).list() } - fun queryTaskLabelByIdAndState(markerId: String, state: String): TaskBean? { + fun queryTaskMarkerById(markerId: String, state: String): TaskBean? { return taskBeanDao.queryBuilder() .where( - TaskBeanDao.Properties.MarkerId.eq(markerId), + TaskBeanDao.Properties.MarkerRealId.eq(markerId), TaskBeanDao.Properties.State.eq(state) ).list().firstOrNull() } diff --git a/app/src/main/java/com/casic/detector/view/MainActivity.kt b/app/src/main/java/com/casic/detector/view/MainActivity.kt index 8e5c5ac..bb448fe 100644 --- a/app/src/main/java/com/casic/detector/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/view/MainActivity.kt @@ -110,10 +110,8 @@ private val kTag = "MainActivity" private val context = this@MainActivity - private val gpioManager by lazy { GpioManager() } private val samplePopupWindow by lazy { SamplePopupWindow(this) } private val gson by lazy { Gson() } - private val locationHub by lazy { LocationHub(this) } private val regionRadius by lazy { LocaleConstant.RADIUS_SIZE.dp2px(this) } private val backDrawables by lazy { HashMap() } private val installDialog by lazy { InstallMarkerDialog(this) } @@ -128,11 +126,13 @@ private var ids = ArrayList() private var signalTask: TimerTask? = null private var searchMarkerTimer: Timer? = null + private var taskId: String? = null private lateinit var aMap: AMap private lateinit var task: TaskBean - private lateinit var taskId: String /***inner class 需要用到*****start*/ + private val gpioManager by lazy { GpioManager() } + private val locationHub by lazy { LocationHub(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val attr = AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_ALARM) @@ -142,6 +142,7 @@ private var soundResourceId = 0 private var slowSoundResourceId = 0 private var fastSoundResourceId = 0 + private var isExecuteTask = false /***inner class 需要用到*****end*/ @@ -325,25 +326,31 @@ override fun onActionItemClick(position: Int) { task = tasks[position] SaveKeyValues.putValue(LocaleConstant.TASK_ID, task.taskId) - AlertControlDialog.Builder().setContext(context).setTitle("提示") - .setMessage("请选择操作方式").setPositiveButton("执行工单") + AlertControlDialog.Builder() + .setContext(context) + .setTitle("提示") + .setMessage("请选择操作方式") + .setPositiveButton("执行工单") .setNegativeButton("提交工单") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - detectRedrawGraphic(task.taskId) - val latLng = LatLng( task.lat.toDouble(), task.lng.toDouble() ) aMap.moveCamera( CameraUpdateFactory.newLatLngZoom(latLng, 16f) ) + //执行工单 uploadTask(task.taskId, "1") + detectRedrawGraphic(task.taskId) + isExecuteTask = true } override fun onCancelClick() { + //提交工单 uploadTask(task.taskId, "2") + isExecuteTask = false } }).build().show() } @@ -364,9 +371,25 @@ binding.detectionButton.setOnClickListener { /** * 改为Dialog方式,避免频繁打开/关闭串口 + * + * 如果开启自由巡检就不让探测 * */ - searchDialog.show() + if (isFreeTask) { + AlertMessageDialog.Builder() + .setContext(this) + .setTitle("温馨提示") + .setMessage("正在自由巡检任务中,请完成此次任务之后再使用探测功能") + .setPositiveButton("好的") + .setOnDialogButtonClickListener(object : + AlertMessageDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + + } + }).build().show() + } else { + searchDialog.show() // searchNewDialog.show() + } } //自由巡检 @@ -382,8 +405,12 @@ //降低串口电位 gpioManager.setGpioLow("18") - taskViewModel.uploadTaskMarker(taskId, ids) binding.stopFreeTaskButton.visibility = View.GONE + if (taskId.isNullOrBlank()) { + "任务ID异常,无法提交任务,请联系服务器管理员".show(context) + return + } + taskViewModel.uploadTaskMarker(taskId, ids) } }).build().show() true @@ -452,7 +479,7 @@ LoadingDialogHub.show(this, "标识器安装中,请稍后...") } else if (searchDialog.isDetectMarker) { searchDialog.taskBean?.apply { - "标识器${this.markerId}已探测!".show(context) + "标识器${this.markerRealId}已探测!".show(context) DataBaseManager.get.updateTaskLabel(this) } } else { @@ -463,8 +490,14 @@ else -> { if (installDialog.isInstallMarker) { installDialog.dismiss() - installDialog.isInstallMarker = false } + + if (searchDialog.isDetectMarker) { + searchDialog.taskBean?.apply { + detectRedrawGraphic(taskId) + } + } + LoadingDialogHub.dismiss() } } @@ -1033,6 +1066,7 @@ //降低串口电位 gpioManager.setGpioLow("18") soundPool.autoPause() + isInstallMarker = false super.dismiss() } @@ -1294,6 +1328,14 @@ //角度 degreeCache["lastDegree"] = 0f + + if (isExecuteTask) { + binding.taskStateView.visibility = View.GONE + binding.taskStateView.isSelected = false + } else { + binding.taskStateView.visibility = View.VISIBLE + binding.taskStateView.isSelected = true + } } fun bindingValue(hex: String) { @@ -1404,13 +1446,15 @@ binding.searchResultView.setTextColor(Color.parseColor("#428d00")) binding.searchResultView.setBackgroundResource(R.mipmap.bg_small_text_green) - //自动上传标识器 - taskBean = DataBaseManager.get.queryTaskLabelByIdAndState(markerId, "未开始") - taskBean?.apply { - /** - * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 - * */ - taskViewModel.uploadMarker(taskCode) + //工单开始后才自动上传标识器 + if (isExecuteTask) { + taskBean = DataBaseManager.get.queryTaskMarkerById(markerId, "未开始") + taskBean?.apply { + /** + * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 + * */ + taskViewModel.uploadMarker(taskCode) + } } } } @@ -1616,14 +1660,15 @@ binding.searchResultView.setBackgroundResource(R.mipmap.bg_small_text_green) //自动上传标识器 - val taskBean = - DataBaseManager.get.queryTaskLabelByIdAndState(markerId, "未开始") -// taskBean?.apply { -// /** -// * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 -// * */ -// taskViewModel.uploadMarker(taskCode) -// } + if (isExecuteTask) { + val taskBean = DataBaseManager.get.queryTaskMarkerById(markerId, "未开始") + taskBean?.apply { + /** + * 此taskCode是 [com.casic.detector.model.TaskModel.MessageModel.TaskDetailInfosModel] 里面的主键,也就是这个标签在数据库里面的主键 + * */ + taskViewModel.uploadMarker(taskCode) + } + } } } } diff --git a/app/src/main/java/com/casic/detector/vm/TaskViewModel.kt b/app/src/main/java/com/casic/detector/vm/TaskViewModel.kt index 800abe7..dbb83fc 100644 --- a/app/src/main/java/com/casic/detector/vm/TaskViewModel.kt +++ b/app/src/main/java/com/casic/detector/vm/TaskViewModel.kt @@ -39,7 +39,7 @@ it.printStackTrace() }) - fun uploadTaskMarker(taskId: String, models: ArrayList) = launch({ + fun uploadTaskMarker(taskId: String?, models: ArrayList) = launch({ val response = RetrofitServiceManager.uploadTaskMarker(taskId, models) if (response.getResponseState()) { val element = JsonParser.parseString(response) diff --git a/app/src/main/res/layout/dialog_search_marker.xml b/app/src/main/res/layout/dialog_search_marker.xml index ef54017..3e42003 100644 --- a/app/src/main/res/layout/dialog_search_marker.xml +++ b/app/src/main/res/layout/dialog_search_marker.xml @@ -74,6 +74,19 @@ + +