Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS
This commit is contained in:
commit
b2d7b8af47
@ -39,6 +39,7 @@ class RealmOperateHelper() {
|
||||
* */
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
suspend fun queryLink(
|
||||
realm: Realm,
|
||||
point: GeoPoint,
|
||||
buffer: Double = DEFAULT_BUFFER,
|
||||
bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE,
|
||||
@ -63,9 +64,9 @@ class RealmOperateHelper() {
|
||||
val yStart = tileYSet.stream().min(Comparator.naturalOrder()).orElse(null)
|
||||
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
|
||||
// 查询realm中对应tile号的数据
|
||||
val realm = getSelectTaskRealmInstance()
|
||||
// val realm = getSelectTaskRealmInstance()
|
||||
val realmList =
|
||||
getSelectTaskRealmTools(RenderEntity::class.java, false)
|
||||
getSelectTaskRealmTools(realm, RenderEntity::class.java, false)
|
||||
.equalTo("table", DataCodeEnum.OMDB_LINK_DIRECT.name)
|
||||
.greaterThanOrEqualTo("tileX", xStart)
|
||||
.lessThanOrEqualTo("tileX", xEnd)
|
||||
@ -74,7 +75,7 @@ class RealmOperateHelper() {
|
||||
.findAll()
|
||||
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
||||
val dataList = realm.copyFromRealm(realmList)
|
||||
realm.close()
|
||||
// realm.close()
|
||||
|
||||
val queryResult = dataList?.stream()?.filter {
|
||||
polygon.intersects(it.wkt)
|
||||
@ -132,7 +133,7 @@ class RealmOperateHelper() {
|
||||
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
|
||||
// 查询realm中对应tile号的数据
|
||||
val realm = getSelectTaskRealmInstance()
|
||||
val realmList = getSelectTaskRealmTools(RenderEntity::class.java, true)
|
||||
val realmList = getSelectTaskRealmTools(realm, RenderEntity::class.java, true)
|
||||
.equalTo("table", table)
|
||||
.greaterThanOrEqualTo("tileX", xStart)
|
||||
.lessThanOrEqualTo("tileX", xEnd)
|
||||
@ -228,12 +229,14 @@ class RealmOperateHelper() {
|
||||
return qsRecordBean
|
||||
}
|
||||
|
||||
suspend fun queryLinkToMutableRenderEntityList(linkPid: String): MutableList<RenderEntity>? {
|
||||
suspend fun queryLinkToMutableRenderEntityList(
|
||||
realm: Realm,
|
||||
linkPid: String
|
||||
): MutableList<RenderEntity>? {
|
||||
val resultList = mutableListOf<RenderEntity>()
|
||||
// val realm = getSelectTaskRealmInstance()
|
||||
|
||||
val realm = getSelectTaskRealmInstance()
|
||||
|
||||
val realmR = getSelectTaskRealmTools(RenderEntity::class.java, true)
|
||||
val realmR = getSelectTaskRealmTools(realm, RenderEntity::class.java, true)
|
||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid).findAll()
|
||||
|
||||
val dataList = realm.copyFromRealm(realmR)
|
||||
@ -242,7 +245,7 @@ class RealmOperateHelper() {
|
||||
resultList.add(it)
|
||||
}
|
||||
|
||||
realm.close()
|
||||
// realm.close()
|
||||
return resultList
|
||||
}
|
||||
|
||||
@ -280,7 +283,7 @@ class RealmOperateHelper() {
|
||||
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
|
||||
val realm = getSelectTaskRealmInstance()
|
||||
var realmList = mutableListOf<RenderEntity>()
|
||||
val realmQuery = getSelectTaskRealmTools(RenderEntity::class.java, false)
|
||||
val realmQuery = getSelectTaskRealmTools(realm, RenderEntity::class.java, false)
|
||||
.greaterThanOrEqualTo("tileX", xStart)
|
||||
.lessThanOrEqualTo("tileX", xEnd)
|
||||
.greaterThanOrEqualTo("tileY", yStart)
|
||||
@ -299,10 +302,12 @@ class RealmOperateHelper() {
|
||||
}
|
||||
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
||||
val queryResult = realmList?.stream()?.filter {
|
||||
if(Constant.MapCatchLine){
|
||||
polygon.intersects(it.wkt) && it.wkt?.geometryType?.uppercase().equals("LINESTRING")||it.wkt?.geometryType?.uppercase().equals("POLYGON")
|
||||
}else{
|
||||
polygon.intersects(it.wkt) && it.wkt?.geometryType?.uppercase().equals("POINT")||it.wkt?.geometryType?.uppercase().equals("POLYGON")
|
||||
if (Constant.MapCatchLine) {
|
||||
polygon.intersects(it.wkt) && it.wkt?.geometryType?.uppercase()
|
||||
.equals("LINESTRING") || it.wkt?.geometryType?.uppercase().equals("POLYGON")
|
||||
} else {
|
||||
polygon.intersects(it.wkt) && it.wkt?.geometryType?.uppercase()
|
||||
.equals("POINT") || it.wkt?.geometryType?.uppercase().equals("POLYGON")
|
||||
}
|
||||
}?.toList()
|
||||
queryResult?.let {
|
||||
@ -323,15 +328,13 @@ class RealmOperateHelper() {
|
||||
* @param bufferType 点位外扩距离的单位: 米-Meter,像素-PIXEL
|
||||
* @param sort 是否需要排序
|
||||
* */
|
||||
suspend fun queryLinkByLinkPid(linkPid: String): MutableList<RenderEntity> {
|
||||
suspend fun queryLinkByLinkPid(realm: Realm,linkPid: String): MutableList<RenderEntity> {
|
||||
val result = mutableListOf<RenderEntity>()
|
||||
val realm = getSelectTaskRealmInstance()
|
||||
val realmList = getSelectTaskRealmTools(RenderEntity::class.java, false)
|
||||
val realmList = getSelectTaskRealmTools(realm, RenderEntity::class.java, false)
|
||||
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
|
||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid)
|
||||
.findAll()
|
||||
result.addAll(realm.copyFromRealm(realmList))
|
||||
realm.close()
|
||||
return result
|
||||
}
|
||||
|
||||
@ -426,19 +429,20 @@ class RealmOperateHelper() {
|
||||
|
||||
|
||||
fun <E : RealmModel> getSelectTaskRealmTools(
|
||||
realm: Realm,
|
||||
clazz: Class<E>,
|
||||
enableSql: Boolean
|
||||
): RealmQuery<E> {
|
||||
var realmQuery = getSelectTaskRealmInstance().where(clazz)
|
||||
val realmQuery = realm.where(clazz)
|
||||
if (MapParamUtils.getDataLayerEnum() != null) {
|
||||
if (enableSql) {
|
||||
var sql =
|
||||
" enable${MapParamUtils.getDataLayerEnum().sql}"
|
||||
getSelectTaskRealmInstance().where(clazz).rawPredicate(sql)
|
||||
realm.where(clazz).rawPredicate(sql)
|
||||
}
|
||||
|
||||
}
|
||||
if(clazz.name==RenderEntity::class.jvmName){
|
||||
if (clazz.name == RenderEntity::class.jvmName) {
|
||||
// 筛选不显示的数据
|
||||
if (com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY != null && com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY.size > 0) {
|
||||
realmQuery.beginGroup()
|
||||
|
@ -50,17 +50,11 @@ import io.realm.Realm
|
||||
import io.realm.RealmConfiguration
|
||||
import io.realm.RealmSet
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.flow.flow
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.locationtech.jts.geom.Envelope
|
||||
import org.locationtech.jts.geom.Geometry
|
||||
import org.locationtech.jts.geom.LineString
|
||||
import org.locationtech.spatial4j.shape.Rectangle
|
||||
import org.oscim.core.GeoPoint
|
||||
import org.oscim.core.MapPosition
|
||||
import org.oscim.map.Map
|
||||
@ -637,7 +631,7 @@ class MainViewModel @Inject constructor(
|
||||
private suspend fun captureItem(point: GeoPoint) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
var buffer = 3.2
|
||||
if(mapController.mMapView.mapLevel>=18){
|
||||
if (mapController.mMapView.mapLevel >= 18) {
|
||||
buffer = 2.0
|
||||
}
|
||||
val itemList = realmOperateHelper.queryElement(
|
||||
@ -677,9 +671,9 @@ class MainViewModel @Inject constructor(
|
||||
val topSignList = mutableListOf<SignBean>()
|
||||
mapController.lineHandler.linksLayer.clear()
|
||||
if (linkIdCache != route.linkId) {
|
||||
|
||||
val realm = realmOperateHelper.getSelectTaskRealmInstance()
|
||||
mapController.lineHandler.showLine(route.pointList)
|
||||
var elementList = realmOperateHelper.queryLinkByLinkPid(route.linkId)
|
||||
val elementList = realmOperateHelper.queryLinkByLinkPid(realm, route.linkId)
|
||||
for (element in elementList) {
|
||||
|
||||
when (element.code) {
|
||||
@ -749,6 +743,7 @@ class MainViewModel @Inject constructor(
|
||||
speakMode?.speakText(speechText)
|
||||
}
|
||||
linkIdCache = route.linkId ?: ""
|
||||
realm.close()
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
@ -769,8 +764,8 @@ class MainViewModel @Inject constructor(
|
||||
captureLinkState = true
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
|
||||
val linkList = realmOperateHelper.queryLink(point = point)
|
||||
val realm = realmOperateHelper.getSelectTaskRealmInstance()
|
||||
val linkList = realmOperateHelper.queryLink(realm, point = point)
|
||||
|
||||
var hisRoadName = false
|
||||
|
||||
@ -807,7 +802,8 @@ class MainViewModel @Inject constructor(
|
||||
|
||||
val newLineString = GeometryTools.createLineString(linePoints)
|
||||
linkId?.let {
|
||||
var elementList = realmOperateHelper.queryLinkByLinkPid(it)
|
||||
val elementList = realmOperateHelper.queryLinkByLinkPid(realm, it)
|
||||
Log.e("jingo", "捕捉到数据 ${elementList.size} 个")
|
||||
for (element in elementList) {
|
||||
if (element.code == DataCodeEnum.OMDB_LINK_NAME.code) {
|
||||
hisRoadName = true
|
||||
@ -824,7 +820,10 @@ class MainViewModel @Inject constructor(
|
||||
newLineString,
|
||||
element
|
||||
)
|
||||
// Log.e("jingo", "捕捉到的数据code ${element.code}")
|
||||
Log.e(
|
||||
"jingo",
|
||||
"捕捉到的数据code ${DataCodeEnum.findTableNameByCode(element.code)}"
|
||||
)
|
||||
when (element.code) {
|
||||
DataCodeEnum.OMDB_MULTI_DIGITIZED.code,//上下线分离
|
||||
DataCodeEnum.OMDB_CON_ACCESS.code,//全封闭
|
||||
@ -887,10 +886,10 @@ class MainViewModel @Inject constructor(
|
||||
|
||||
}
|
||||
|
||||
val realm = realmOperateHelper.getSelectTaskRealmInstance()
|
||||
// val realm = realmOperateHelper.getSelectTaskRealmInstance()
|
||||
|
||||
val entityList = realmOperateHelper.getSelectTaskRealmTools(
|
||||
RenderEntity::class.java, true
|
||||
realm, RenderEntity::class.java, true
|
||||
).and().equalTo("table", DataCodeEnum.OMDB_RESTRICTION.name).and()
|
||||
.equalTo(
|
||||
"properties['linkIn']", it
|
||||
@ -901,7 +900,7 @@ class MainViewModel @Inject constructor(
|
||||
val outLink = outList[i].properties["linkOut"]
|
||||
val linkOutEntity =
|
||||
realmOperateHelper.getSelectTaskRealmTools(
|
||||
RenderEntity::class.java,
|
||||
realm, RenderEntity::class.java,
|
||||
true
|
||||
)
|
||||
.equalTo("table", DataCodeEnum.OMDB_RD_LINK_KIND.name)
|
||||
@ -919,8 +918,8 @@ class MainViewModel @Inject constructor(
|
||||
mapController.lineHandler.linksLayer.addLine(
|
||||
link.geometry, Color.BLUE
|
||||
)
|
||||
realm.close()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
liveDataTopSignList.postValue(topSignList.distinctBy { it.name }
|
||||
@ -941,6 +940,7 @@ class MainViewModel @Inject constructor(
|
||||
if (!hisRoadName) {
|
||||
liveDataRoadName.postValue(null)
|
||||
}
|
||||
realm.close()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
|
||||
|
@ -218,7 +218,7 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
liveDataQsRecordBean.value?.let {
|
||||
|
||||
val realm = realmOperateHelper.getSelectTaskRealmInstance()
|
||||
val taskLink =
|
||||
realmOperateHelper.captureTaskLink(point)
|
||||
if (taskLink != null) {
|
||||
@ -226,7 +226,7 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
mapController.lineHandler.showLine(taskLink.geometry)
|
||||
return
|
||||
} else {
|
||||
val linkList = realmOperateHelper.queryLink(point = point)
|
||||
val linkList = realmOperateHelper.queryLink(realm,point = point)
|
||||
if (linkList.isNotEmpty()) {
|
||||
it.linkId = linkList[0].properties[LinkTable.linkPid] ?: ""
|
||||
mapController.lineHandler.showLine(linkList[0].geometry)
|
||||
@ -235,6 +235,7 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
}
|
||||
it.linkId = ""
|
||||
mapController.lineHandler.removeLine()
|
||||
realm.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -275,7 +275,7 @@ class PersonalCenterViewModel @Inject constructor(
|
||||
liveDataMessage.postValue("元数据表导入成功")
|
||||
roomAppDatabase.getScRootCauseAnalysisDao().insertOrUpdateList(list2)
|
||||
}
|
||||
if(list3.isNotEmpty()){
|
||||
if (list3.isNotEmpty()) {
|
||||
liveDataMessage.postValue("标牌对照表导入成功")
|
||||
roomAppDatabase.getScWarningCodeDao().insertList(list3)
|
||||
}
|
||||
@ -295,7 +295,9 @@ class PersonalCenterViewModel @Inject constructor(
|
||||
fun readRealmData() {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
// val result = realmOperateHelper.queryLink(GeometryTools.createPoint(115.685817,28.62759))
|
||||
val result = realmOperateHelper.queryLinkByLinkPid("84206617008217069")
|
||||
val realm = realmOperateHelper.getSelectTaskRealmInstance()
|
||||
val result = realmOperateHelper.queryLinkByLinkPid(realm, "84206617008217069")
|
||||
realm.close()
|
||||
Log.d("xiaoyan", result.toString())
|
||||
}
|
||||
}
|
||||
|
@ -76,6 +76,11 @@ class TaskFragment : BaseFragment() {
|
||||
binding.taskAddLink.isSelected = it
|
||||
}
|
||||
|
||||
viewModel.liveDataAddLinkDialog.observe(viewLifecycleOwner){
|
||||
viewModel.addTaskLink(requireContext(),it)
|
||||
}
|
||||
|
||||
|
||||
//注意:使用滑动菜单不能开启滑动删除,否则只有滑动删除没有滑动菜单
|
||||
val mSwipeMenuCreator = SwipeMenuCreator { _, rightMenu, _ ->
|
||||
//添加菜单自动添加至尾部
|
||||
@ -110,6 +115,7 @@ class TaskFragment : BaseFragment() {
|
||||
viewModel.liveDataTaskLinks.observe(viewLifecycleOwner) {
|
||||
adapter.resetSelect()
|
||||
adapter.refreshData(it)
|
||||
// adapter.setSelectTag(it.last().linkPid)
|
||||
}
|
||||
viewModel.getTaskList(requireContext())
|
||||
binding.taskSearch.addTextChangedListener(object : TextWatcher {
|
||||
|
@ -128,21 +128,29 @@ class TaskListAdapter(
|
||||
holder.addObserver(object : OnLifecycleStateListener {
|
||||
override fun onState(tag: String, state: Lifecycle.State) {
|
||||
when (state) {
|
||||
Lifecycle.State.STARTED ->
|
||||
Lifecycle.State.STARTED -> {
|
||||
uploadManager.observer(
|
||||
taskBean.id,
|
||||
holder,
|
||||
UploadObserver(taskBean.id, binding)
|
||||
)
|
||||
downloadManager.observer(
|
||||
taskBean.id,
|
||||
holder,
|
||||
DownloadObserver(taskBean.id, holder)
|
||||
)
|
||||
Lifecycle.State.DESTROYED ->
|
||||
}
|
||||
Lifecycle.State.DESTROYED -> {
|
||||
downloadManager.removeObserver(tag.toInt())
|
||||
uploadManager.removeObserver(tag.toInt())
|
||||
}
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
})
|
||||
downloadManager.addTask(taskBean)
|
||||
uploadManager.addTask(taskBean)
|
||||
uploadManager.observer(taskBean.id, holder, UploadObserver(taskBean.id, binding))
|
||||
// uploadManager.observer(taskBean.id, holder, UploadObserver(taskBean.id, binding))
|
||||
if (taskBean.status == FileDownloadStatus.NONE) {
|
||||
binding.taskDownloadBtn.setBackgroundColor(Color.WHITE)
|
||||
binding.taskDownloadBtn.setTextColor(Color.parseColor("#888FB3"))
|
||||
@ -187,7 +195,6 @@ class TaskListAdapter(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -226,8 +233,8 @@ class TaskListAdapter(
|
||||
binding.taskUploadBtn.stopAnimator()
|
||||
binding.taskUploadBtn.setText("重新同步")
|
||||
binding.taskUploadBtn.setProgress(100)
|
||||
if(!TextUtils.isEmpty(taskBean.errMsg)){
|
||||
Toast.makeText(binding.root.context,taskBean.errMsg,Toast.LENGTH_LONG).show()
|
||||
if (!TextUtils.isEmpty(taskBean.errMsg)) {
|
||||
Toast.makeText(binding.root.context, taskBean.errMsg, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
|
||||
@ -357,7 +364,7 @@ class TaskListAdapter(
|
||||
refreshData(list)
|
||||
}
|
||||
|
||||
fun getSelectTaskPosition():Int{
|
||||
fun getSelectTaskPosition(): Int {
|
||||
return selectPosition
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,12 @@ class TaskViewModel @Inject constructor(
|
||||
/**
|
||||
* 是否开启了道路选择
|
||||
*/
|
||||
var liveDataSelectNewLink = MutableLiveData(false)
|
||||
val liveDataSelectNewLink = MutableLiveData(false)
|
||||
|
||||
/**
|
||||
* 选中link
|
||||
*/
|
||||
val liveDataAddLinkDialog = MutableLiveData<RenderEntity>()
|
||||
|
||||
init {
|
||||
sharedPreferences.registerOnSharedPreferenceChangeListener(this)
|
||||
@ -98,10 +103,11 @@ class TaskViewModel @Inject constructor(
|
||||
if (tag == TAG) {
|
||||
if (liveDataSelectNewLink.value == true) {
|
||||
viewModelScope.launch(Dispatchers.Default) {
|
||||
val realm = realmOperateHelper.getSelectTaskRealmInstance()
|
||||
if (currentSelectTaskBean == null) {
|
||||
liveDataToastMessage.postValue("还没有开启任何任务")
|
||||
} else {
|
||||
val links = realmOperateHelper.queryLink(
|
||||
val links = realmOperateHelper.queryLink(realm,
|
||||
point = point,
|
||||
)
|
||||
if (links.isNotEmpty()) {
|
||||
@ -111,43 +117,15 @@ class TaskViewModel @Inject constructor(
|
||||
return@launch
|
||||
}
|
||||
}
|
||||
val hadLinkDvoBean = HadLinkDvoBean(
|
||||
taskId = currentSelectTaskBean!!.id,
|
||||
linkPid = l.properties["linkPid"]!!,
|
||||
geometry = l.geometry,
|
||||
linkStatus = 2
|
||||
)
|
||||
currentSelectTaskBean!!.hadLinkDvoList.add(
|
||||
hadLinkDvoBean
|
||||
)
|
||||
val realm = Realm.getDefaultInstance()
|
||||
realm.executeTransaction { r ->
|
||||
r.copyToRealmOrUpdate(hadLinkDvoBean)
|
||||
r.copyToRealmOrUpdate(currentSelectTaskBean!!)
|
||||
}
|
||||
//根据Link数据查询对应数据上要素,对要素进行显示重置
|
||||
l.properties["linkPid"]?.let {
|
||||
realmOperateHelper.queryLinkToMutableRenderEntityList(it)
|
||||
?.forEach { renderEntity ->
|
||||
if (renderEntity.enable != 1) {
|
||||
renderEntity.enable = 1
|
||||
realm.executeTransaction { r ->
|
||||
r.copyToRealmOrUpdate(renderEntity)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList)
|
||||
mapController.lineHandler.addTaskLink(hadLinkDvoBean)
|
||||
mapController.layerManagerHandler.updateOMDBVectorTileLayer()
|
||||
mapController.mMapView.vtmMap.updateMap(true)
|
||||
realm.close()
|
||||
liveDataAddLinkDialog.postValue(l)
|
||||
}
|
||||
}
|
||||
realm.close()
|
||||
}
|
||||
} else {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val links = realmOperateHelper.queryLink(
|
||||
val realm = realmOperateHelper.getSelectTaskRealmInstance()
|
||||
val links = realmOperateHelper.queryLink(realm,
|
||||
point = point,
|
||||
)
|
||||
if (links.isNotEmpty()) {
|
||||
@ -160,6 +138,7 @@ class TaskViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
}
|
||||
realm.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -282,7 +261,7 @@ class TaskViewModel @Inject constructor(
|
||||
* 设置当前选择的任务,并高亮当前任务的所有link
|
||||
*/
|
||||
|
||||
fun setSelectTaskBean( taskBean: TaskBean) {
|
||||
fun setSelectTaskBean(taskBean: TaskBean) {
|
||||
|
||||
sharedPreferences.edit().putInt(Constant.SELECT_TASK_ID, taskBean.id).apply()
|
||||
|
||||
@ -291,15 +270,17 @@ class TaskViewModel @Inject constructor(
|
||||
liveDataTaskLinks.value = taskBean.hadLinkDvoList
|
||||
showTaskLinks(taskBean)
|
||||
MapParamUtils.setTaskId(taskBean.id)
|
||||
Constant.currentSelectTaskFolder = File(Constant.USER_DATA_PATH +"/${taskBean.id}")
|
||||
Constant.currentSelectTaskConfig = RealmConfiguration.Builder().directory(Constant.currentSelectTaskFolder).name("OMQS.realm").encryptionKey(Constant.PASSWORD).allowQueriesOnUiThread(true).schemaVersion(2).build()
|
||||
Constant.currentSelectTaskFolder = File(Constant.USER_DATA_PATH + "/${taskBean.id}")
|
||||
Constant.currentSelectTaskConfig =
|
||||
RealmConfiguration.Builder().directory(Constant.currentSelectTaskFolder)
|
||||
.name("OMQS.realm").encryptionKey(Constant.PASSWORD).allowQueriesOnUiThread(true)
|
||||
.schemaVersion(2).build()
|
||||
MapParamUtils.setTaskConfig(Constant.currentSelectTaskConfig)
|
||||
mapController.layerManagerHandler.updateOMDBVectorTileLayer()
|
||||
mapController.mMapView.updateMap(true)
|
||||
}
|
||||
|
||||
|
||||
|
||||
private fun showTaskLinks(taskBean: TaskBean) {
|
||||
|
||||
mapController.lineHandler.removeAllTaskLine()
|
||||
@ -494,17 +475,17 @@ class TaskViewModel @Inject constructor(
|
||||
realm.where(QsRecordBean::class.java).equalTo("linkId", hadLinkDvoBean.linkPid)
|
||||
.and().equalTo("taskId", hadLinkDvoBean.taskId).findAll()
|
||||
if (objects.isEmpty() && hadLinkDvoBean.reason.isEmpty()) {
|
||||
if(hadLinkDvoBean.linkStatus==3){
|
||||
if (hadLinkDvoBean.linkStatus == 3) {
|
||||
result = 1
|
||||
realm.close()
|
||||
return@forEach
|
||||
}else{
|
||||
} else {
|
||||
result = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
realm.close()
|
||||
if(result==1){
|
||||
if (result == 1) {
|
||||
liveDataTaskUpload.postValue(map)
|
||||
withContext(Dispatchers.Main) {
|
||||
val mDialog = FirstDialog(context)
|
||||
@ -518,7 +499,7 @@ class TaskViewModel @Inject constructor(
|
||||
mDialog.setCancelVisibility(View.GONE)
|
||||
mDialog.show()
|
||||
}
|
||||
}else if(result==2){
|
||||
} else if (result == 2) {
|
||||
liveDataTaskUpload.postValue(map)
|
||||
withContext(Dispatchers.Main) {
|
||||
val mDialog = FirstDialog(context)
|
||||
@ -536,7 +517,7 @@ class TaskViewModel @Inject constructor(
|
||||
) { _, _ -> mDialog.dismiss() }
|
||||
mDialog.show()
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
map[taskBean] = true
|
||||
liveDataTaskUpload.postValue(map)
|
||||
}
|
||||
@ -559,69 +540,62 @@ class TaskViewModel @Inject constructor(
|
||||
*/
|
||||
fun setSelectLink(selected: Boolean) {
|
||||
liveDataSelectNewLink.value = selected
|
||||
// //开始捕捉
|
||||
// if (selected) {
|
||||
// mapController.mMapView.addOnNIMapClickListener(TAG, object : OnGeoPointClickListener {
|
||||
// override fun onMapClick(tag: String, point: GeoPoint) {
|
||||
// if (tag == TAG) {
|
||||
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
// viewModelScope.launch(Dispatchers.Default) {
|
||||
// if (currentSelectTaskBean == null) {
|
||||
// liveDataToastMessage.postValue("还没有开启任何任务")
|
||||
// } else {
|
||||
// val links = realmOperateHelper.queryLink(
|
||||
// point = point,
|
||||
// )
|
||||
// if (links.isNotEmpty()) {
|
||||
// val l = links[0]
|
||||
// for (link in currentSelectTaskBean!!.hadLinkDvoList) {
|
||||
// if (link.linkPid == l.properties["linkPid"]) {
|
||||
// return@launch
|
||||
// }
|
||||
// }
|
||||
// val hadLinkDvoBean = HadLinkDvoBean(
|
||||
// taskId = currentSelectTaskBean!!.id,
|
||||
// linkPid = l.properties["linkPid"]!!,
|
||||
// geometry = l.geometry,
|
||||
// linkStatus = 2
|
||||
// )
|
||||
// currentSelectTaskBean!!.hadLinkDvoList.add(
|
||||
// hadLinkDvoBean
|
||||
// )
|
||||
// val realm = Realm.getDefaultInstance()
|
||||
// realm.executeTransaction { r ->
|
||||
// r.copyToRealmOrUpdate(hadLinkDvoBean)
|
||||
// r.copyToRealmOrUpdate(currentSelectTaskBean!!)
|
||||
// }
|
||||
// //根据Link数据查询对应数据上要素,对要素进行显示重置
|
||||
// l.properties["linkPid"]?.let {
|
||||
// realmOperateHelper.queryLinkToMutableRenderEntityList(it)
|
||||
// ?.forEach { renderEntity ->
|
||||
// if (renderEntity.enable != 1) {
|
||||
// renderEntity.enable = 1
|
||||
// realm.executeTransaction { r ->
|
||||
// r.copyToRealmOrUpdate(renderEntity)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList)
|
||||
// mapController.lineHandler.addTaskLink(hadLinkDvoBean)
|
||||
// mapController.layerManagerHandler.updateOMDBVectorTileLayer()
|
||||
// mapController.mMapView.vtmMap.updateMap(true)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// } else {
|
||||
// mapController.mMapView.removeOnNIMapClickListener(TAG)
|
||||
// mapController.lineHandler.removeLine()
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加link
|
||||
*/
|
||||
fun addTaskLink(context: Context, data: RenderEntity) {
|
||||
val mDialog = FirstDialog(context)
|
||||
mDialog.setTitle("提示")
|
||||
mDialog.setMessage("是否添加当前link")
|
||||
mDialog.setPositiveButton(
|
||||
"确定"
|
||||
) { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val hadLinkDvoBean = HadLinkDvoBean(
|
||||
taskId = currentSelectTaskBean!!.id,
|
||||
linkPid = data.properties["linkPid"]!!,
|
||||
geometry = data.geometry,
|
||||
linkStatus = 2
|
||||
)
|
||||
currentSelectTaskBean!!.hadLinkDvoList.add(
|
||||
hadLinkDvoBean
|
||||
)
|
||||
val realm = Realm.getDefaultInstance()
|
||||
realm.executeTransaction { r ->
|
||||
r.copyToRealmOrUpdate(hadLinkDvoBean)
|
||||
r.copyToRealmOrUpdate(currentSelectTaskBean!!)
|
||||
}
|
||||
//根据Link数据查询对应数据上要素,对要素进行显示重置
|
||||
data.properties["linkPid"]?.let {
|
||||
realmOperateHelper.queryLinkToMutableRenderEntityList(realm,it)
|
||||
?.forEach { renderEntity ->
|
||||
if (renderEntity.enable != 1) {
|
||||
renderEntity.enable = 1
|
||||
realm.executeTransaction { r ->
|
||||
r.copyToRealmOrUpdate(renderEntity)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList)
|
||||
mapController.lineHandler.addTaskLink(hadLinkDvoBean)
|
||||
mapController.layerManagerHandler.updateOMDBVectorTileLayer()
|
||||
mapController.mMapView.vtmMap.updateMap(true)
|
||||
realm.close()
|
||||
}
|
||||
}
|
||||
mDialog.setNegativeButton(
|
||||
"取消"
|
||||
) { _, _ ->
|
||||
mDialog.dismiss()
|
||||
}
|
||||
mDialog.show()
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除评测link
|
||||
*/
|
||||
@ -651,7 +625,7 @@ class TaskViewModel @Inject constructor(
|
||||
|
||||
//重置数据为隐藏
|
||||
if (hadLinkDvoBean.linkStatus == 2) {
|
||||
realmOperateHelper.queryLinkToMutableRenderEntityList(hadLinkDvoBean.linkPid)
|
||||
realmOperateHelper.queryLinkToMutableRenderEntityList(realm,hadLinkDvoBean.linkPid)
|
||||
?.forEach { renderEntity ->
|
||||
if (renderEntity.enable == 1) {
|
||||
renderEntity.enable = 0
|
||||
|
@ -707,6 +707,28 @@ class SignUtil {
|
||||
)
|
||||
)
|
||||
}
|
||||
DataCodeEnum.OMDB_FILL_AREA.code->{
|
||||
list.add(
|
||||
TwoItemAdapterItem(
|
||||
title = "对象号码",
|
||||
text = "${data.properties["objectPid"]}"
|
||||
)
|
||||
)
|
||||
list.add(
|
||||
TwoItemAdapterItem(
|
||||
title = "符合高精", text = when (data.properties["compliant"]) {
|
||||
"0" -> "否"
|
||||
"1" -> "是"
|
||||
else -> ""
|
||||
}
|
||||
)
|
||||
)
|
||||
list.add(
|
||||
TwoItemAdapterItem(
|
||||
title = "关联车道组", text = "${data.properties["lgList"]}"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
adapter.data = list
|
||||
return adapter
|
||||
|
Loading…
x
Reference in New Issue
Block a user