From e27f54aa7e10836e2741dc590559e1039fbade78 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 23 七月 2021 15:06:41 +0800
Subject: [PATCH] 1. 创建子任务时,执行用户默认为当前登录用户或执行组中的第一人 2. 修复部分企业类型问题图标错误 3. 新增场景账户自动生成功能
---
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailActivity.kt | 136 +++++++++++++++++++++++++++++----------------
1 files changed, 87 insertions(+), 49 deletions(-)
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailActivity.kt b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailActivity.kt
index 252856b..983b18f 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailActivity.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailActivity.kt
@@ -3,7 +3,6 @@
import android.app.Activity
import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
-import android.content.DialogInterface
import android.content.Intent
import android.net.Uri
import android.os.Bundle
@@ -13,15 +12,16 @@
import android.view.View
import android.view.animation.AnimationUtils
import android.widget.LinearLayout
+import cn.flightfeather.thirdapp.CommonApplication
import cn.flightfeather.thirdapp.R
import cn.flightfeather.thirdapp.activity.GradeActivity
import cn.flightfeather.thirdapp.activity.MapActivity
import cn.flightfeather.thirdapp.activity.ProblemDetailActivity
import cn.flightfeather.thirdapp.activity.PromiseActivity
import cn.flightfeather.thirdapp.adapter.IconsPageAdapter
-import cn.flightfeather.thirdapp.bean.Mediafile
-import cn.flightfeather.thirdapp.bean.Scense
-import cn.flightfeather.thirdapp.bean.Subtask
+import cn.flightfeather.thirdapp.bean.entity.Mediafile
+import cn.flightfeather.thirdapp.bean.entity.Scense
+import cn.flightfeather.thirdapp.bean.entity.Subtask
import cn.flightfeather.thirdapp.bean.vo.ProblemlistVo
import cn.flightfeather.thirdapp.model.event.InspectionEvent
import cn.flightfeather.thirdapp.model.event.ProblemEvent
@@ -58,7 +58,10 @@
const val PROBLEM_RECHECK = 102//闂澶嶆牳
const val PROBLEM_CHECK = 103//闂瀹℃牳
const val CHANGE_CHECK = 104//鏁存敼瀹℃牳
+ const val PROBLEM_DELETE = 105
}
+
+ private var taskStatus: String = Domain.TASK_STATUS_FINISHED
/**
* 鍔犺浇瀹屾垚鐘舵�侊紝
@@ -126,35 +129,19 @@
super.onCreate(savedInstanceState)
- initIconViewPager()
+// initIconViewPager()
initLocation()
ll_show_hide_detail.setOnClickListener(this)
iv_patrol_back.setOnClickListener(this)
ll_patrol_task_detail.visibility = View.GONE
+ user_account.setOnClickListener(this)
+
+ hideMenu()
+
viewModel.inspection.observe(this, Observer {
it?.apply {
- showMenu()
- if (extension1 != null) {
- val list = extension1.split(";").map{str ->
- str.split(",").map {str2 ->
- str2.toDoubleOrNull() ?: 0.0
- }.takeIf { l-> l.size == 2 }.let {latLng->
- LatLng(latLng?.get(1) ?: 0.0, latLng?.get(0) ?: 0.0)
- }
- }
- drawPolyline(list)
- list.firstOrNull()?.let {p->
- myLatLngList.add(
- MyLatLng(
- p,
- drawableId = R.drawable.icon_mark_start_blue,
- selected = true
- )
- )
- }
- }
onDataLoaded(0)
}
})
@@ -162,7 +149,7 @@
viewModel.subTask.observe(this, Observer {
it?.let {
updateUIBySubTask(it)
- refreshMenuStatus(it.status)
+ taskStatus = it.status
onDataLoaded(1)
}
})
@@ -325,9 +312,37 @@
result = result.and(it)
}
if (result) {
- menuList.forEach {
- it.setOnClickListener(this)
+ initIconViewPager()
+ showMenu()
+ refreshMenuStatus(taskStatus)
+
+ viewModel.inspection.value?.extension1?.let{
+ val list = it.split(";").map{str ->
+ str.split(",").map {str2 ->
+ str2.toDoubleOrNull() ?: 0.0
+ }.takeIf { l-> l.size == 2 }.let {latLng->
+ LatLng(latLng?.get(1) ?: 0.0, latLng?.get(0) ?: 0.0)
+ }
+ }
+ //閬撹矾鐩戞祴鐐瑰拰閬撹矾绫诲瀷鐨勫満鏅紝鐩存帴灞曠ず杞ㄨ抗锛涘叾浣欏満鏅彧鏈夌鐞嗗憳鍜屾斂搴滈儴闂ㄥ彲浠ユ煡鐪�
+ if (
+ (viewModel.scene.value?.typeid?.toString() == Constant.SCENE_TYPE9 || viewModel.scene.value?.typeid?.toString() == Constant.SCENE_TYPE10)
+ || (CommonApplication.getInstance().currentUser.usertypeid == 0.toByte() || CommonApplication.getInstance().currentUser.usertypeid == 2.toByte())
+ ) {
+ drawPolyline(list)
+ }
+
+ list.firstOrNull()?.let {p->
+ myLatLngList.add(
+ MyLatLng(
+ p,
+ drawableId = R.drawable.icon_mark_start_blue,
+ selected = true
+ )
+ )
+ }
}
+
} else {
toast("璇风瓑寰呮暟鎹姞杞藉畬鎴�")
}
@@ -364,7 +379,8 @@
//娣诲姞 鐢ㄦ埛绫诲瀷涓衡�滀富绠¢儴闂ㄢ�濇垨鈥滅鐞嗗憳鈥濓紝缂栧彿涓�2鎴�0鏃讹紝鎸夐挳iv_startEndTask娌℃湁鐐瑰嚮浜嬩欢
if (viewModel.userTypeId != Domain.USER_COMPTENT.toByte()
- && viewModel.userTypeId != Domain.USER_ADMIN.toByte()) {
+// && viewModel.userTypeId != Domain.USER_ADMIN.toByte()
+ ) {
iv_start_end_task.setOnClickListener(this)
} else {
iv_start_end_task.alpha = 0.5f
@@ -385,7 +401,7 @@
val address = s.cityname + s.districtname + " " + s.location
tv_scense_address.text = address
- val contact1 = s.contacts + " " + s.contactst
+ val contact1 = s.contacts ?: "" + " " + s.contactst ?: ""
tv_scense_contact1.text = contact1
tv_call_contact1.setOnClickListener {
//鎵撶數璇�
@@ -569,13 +585,13 @@
}
private fun startTracking() {
- if (viewModel.scene.value?.typeid?.toString() != Constant.SCENE_TYPE9
- || viewModel.subTask.value?.status != Domain.TASK_STATUS_RUNNING) return
+ if (
+ viewModel.subTask.value == null ||
+ viewModel.subTask.value?.status != Domain.TASK_STATUS_RUNNING
+ ) return
//褰撶户缁墽琛屾鍦ㄨ繘琛屼腑鐨勪换鍔℃椂锛屾牴鎹槸鍚︽湁鍘嗗彶杞ㄨ抗璁板綍鏉ュ垽鏂槸鍚﹀紑鍚�
- if (viewModel.inspection.value?.extension1 != null) {
- needTracking = true
- }
+ needTracking = true
if (!needTracking || timerTaskRunning) return
@@ -591,8 +607,8 @@
timerTaskRunning = true
}
- val lng = round(longitudeCurrent * 1000) / 1000
- val lat = round(latitudeCurrent * 1000) / 1000
+ val lng = round(longitudeCurrent * 1000000) / 1000000
+ val lat = round(latitudeCurrent * 1000000) / 1000000
viewModel.inspection.value?.apply {
if (extension1 == null) {
@@ -611,9 +627,15 @@
val l1 = LatLng(lat, lng)
val l2 = LatLng(last[1], last[0])
val distance = AMapUtils.calculateLineDistance(l1, l2)
- if (distance >= 5) {
+ if (distance >= 1 && distance < 1000 && lat != 0.0 && lng != 0.0) {
extension1 = "${extension1};${lng},${lat}"
- drawPolyline(LatLng(lat, lng))
+ //閬撹矾鐩戞祴鐐瑰拰閬撹矾绫诲瀷鐨勫満鏅紝鐩存帴灞曠ず杞ㄨ抗锛涘叾浣欏満鏅彧鏈夌鐞嗗憳鍜屾斂搴滈儴闂ㄥ彲浠ユ煡鐪�
+ if (
+ (viewModel.scene.value?.typeid?.toString() == Constant.SCENE_TYPE9 || viewModel.scene.value?.typeid?.toString() == Constant.SCENE_TYPE10)
+ || (CommonApplication.getInstance().currentUser.usertypeid == 0.toByte() || CommonApplication.getInstance().currentUser.usertypeid == 2.toByte())
+ ) {
+ drawPolyline(LatLng(lat, lng))
+ }
}
}
}
@@ -623,7 +645,7 @@
}
private fun trackingDone() {
- if (!needTracking || !timerTaskRunning) return
+ if (!timerTaskRunning) return
aMap.moveCamera(CameraUpdateFactory.zoomTo(zoomLevel))
@@ -648,6 +670,7 @@
} else {
it.problemcount + 1
}
+ // fixme: 2020/9/1 姝ゅ鍘熸湰鐨勯�昏緫鏄柊澧炰竴涓棶棰樺悗锛屽悓姝ユ洿鏂板贰鏌ヤ俊鎭腑鐨勯棶棰樻暟锛岄敊璇紝搴旇灏嗘鏇存柊鎿嶄綔鐩存帴鐢辨柊澧為棶棰樻帴鍙g粺涓�瀹屾垚
viewModel.updateInspection(it)
}
@@ -664,14 +687,28 @@
//寮�濮嬪鑸�
private fun startNavi() {
- val sourceLatLng = LatLng(viewModel.scene.value?.getLatitude()!!, viewModel.scene.value?.getLongitude()!!)
-
- val amapNavi = AmapNavi(this)
- amapNavi.startNavi(sourceLatLng.latitude, sourceLatLng.longitude)
+ if (viewModel.scene.value != null) {
+ val sourceLatLng = LatLng(
+ viewModel.scene.value!!.latitude,
+ viewModel.scene.value!!.longitude
+ )
+ val amapNavi = AmapNavi(this)
+ amapNavi.startNavi(sourceLatLng.latitude, sourceLatLng.longitude)
+ } else {
+ toast("瀵艰埅鐩墠涓嶅彲鐢紝璇风◢鍚庡啀璇�")
+ }
}
override fun onClick(v: View?) {
when (v?.id) {
+ // 鏌ョ湅鎴栬幏鍙栫敤鎴疯处鎴蜂俊鎭�
+ R.id.user_account -> {
+ val intent = Intent(this, MenuSceneAccountActivity::class.java).apply {
+ putExtra("sceneId", viewModel.scene.value?.guid)
+ putExtra("sceneName", viewModel.scene.value?.name)
+ }
+ startActivity(intent)
+ }
//搴曢儴viewPager闅愯棌
R.id.ll_patrol_hide -> hideMenu()
//搴曢儴viewPager鏄剧ず
@@ -716,8 +753,9 @@
val intent = Intent(this, MenuProblemListActivity::class.java).apply {
putExtra("subTask", viewModel.subTask.value)
putExtra("inspection", viewModel.inspection.value)
- putExtra("scenseLat", viewModel.scene.value?.latitude)
- putExtra("scenseLng", viewModel.scene.value?.longitude)
+ putExtra("scene", viewModel.scene.value)
+ putExtra("lat", viewModel.scene.value?.latitude)
+ putExtra("lng", viewModel.scene.value?.longitude)
}
startActivity(intent)
}
@@ -726,8 +764,8 @@
val intent = Intent(this, MenuChangeActivity::class.java).apply {
putExtra("subTask", viewModel.subTask.value)
putExtra("inspection", viewModel.inspection.value)
- putExtra("scenseLat", viewModel.scene.value?.latitude)
- putExtra("scenseLng", viewModel.scene.value?.longitude)
+ putExtra("lat", viewModel.scene.value?.latitude)
+ putExtra("lng", viewModel.scene.value?.longitude)
}
startActivity(intent)
}
@@ -835,7 +873,7 @@
}
startActivity(intent)
}
- //闂瀹℃牳
+ //鏁存敼瀹℃牳
R.id.ln_patrol_change_check -> {
val intent = Intent(this, MenuChangeCheckActivity::class.java).apply {
putExtra("subTask", viewModel.subTask.value)
--
Gitblit v1.9.3