From 00f39555ab11b07d73294f59991eb816d11744ed Mon Sep 17 00:00:00 2001
From: squallzhjch <zhangjingchao@navinfo.com>
Date: Fri, 19 May 2023 17:23:45 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=A1=E4=BB=B6=E9=99=90?=
 =?UTF-8?q?=E9=80=9F=20=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E4=B8=8A?=
 =?UTF-8?q?=E4=BC=A0=E4=B8=8B=E8=BD=BD=E5=9C=B0=E5=9D=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/com/navinfo/omqs/bean/SignBean.kt    |  2 +
 .../omqs/http/RetrofitNetworkServiceAPI.kt    |  4 +-
 .../omqs/ui/activity/map/MainViewModel.kt     |  1 +
 .../omqs/ui/activity/map/SignAdapter.kt       |  1 +
 .../com/navinfo/omqs/ui/widget/SignUtil.kt    | 64 ++++++++++++++++++-
 app/src/main/res/layout/adapter_sign.xml      | 23 +++++--
 .../main/res/menu/personal_center_menu.xml    |  2 +-
 .../collect/library/data/entity/TaskBean.kt   |  2 +-
 8 files changed, 89 insertions(+), 10 deletions(-)

diff --git a/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt b/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt
index 6cfe78cd..597ee5bd 100644
--- a/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt
+++ b/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt
@@ -19,6 +19,8 @@ data class SignBean(
     val geometry: String,
     //底部文字
     val bottomText: String,
+    //底部右侧文字
+    val bottomRightText: String,
     //要素code类型
     val elementCode: Int
 ) : Parcelable
\ No newline at end of file
diff --git a/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt b/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt
index b8f3919f..d128052d 100644
--- a/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt
+++ b/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt
@@ -50,13 +50,13 @@ interface RetrofitNetworkServiceAPI {
         @Url url: String
     ): Response<ResponseBody>
 
-    @GET("/devcp/task?evaluatType=2")
+    @GET("/devcp/getEvaluationTask?evaluatType=2")
     suspend fun retrofitGetTaskList(
         @Query("evaluatorNo") evaluatorNo: String,
     ): Response<DefaultTaskResponse<List<TaskBean>>>
 
     @Headers("Content-Type: application/json")
-    @POST("/devcp/upload")
+    @POST("/devcp/uploadSceneProblem")
     suspend fun postRequest(@Body listEvaluationInfo: List<EvaluationInfo>?): Response<ResponseBody>
 
     /**
diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt
index 63df1784..a3722bfd 100644
--- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt
+++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt
@@ -216,6 +216,7 @@ class MainViewModel @Inject constructor(
                                 linkId = linkId,
                                 geometry = element.geometry,
                                 bottomText = SignUtil.getSignBottomText(element),
+                                bottomRightText = SignUtil.getSignBottomRightText(element),
                                 elementCode = element.code
                             )
                         )
diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt
index 5ae873f5..1d8e4778 100644
--- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt
+++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt
@@ -26,6 +26,7 @@ class SignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null)
         bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId)
         bd.signMainIcon.text = item.iconText
         bd.signBottomText.text = item.bottomText
+        bd.signBottomRightText.text = item.bottomRightText
         bd.root.setOnClickListener {
             itemListener?.invoke(position, item)
         }
diff --git a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt
index 265b9c8d..78735c96 100644
--- a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt
+++ b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt
@@ -12,7 +12,7 @@ class SignUtil {
          */
         fun getSignIconText(data: RenderEntity): String {
             return when (data.code) {
-                //常规点限速
+                //常规点限速,条件点限速
                 4002, 4003 -> getSpeedLimitText(data)
 //                //道路种别
 //                2008 -> getKindCodeIcon(data)
@@ -26,8 +26,12 @@ class SignUtil {
 
         fun getSignBottomText(data: RenderEntity): String {
             return when (data.code) {
+                //可变点限速
+                4004 -> "可变点限速"
                 //常规点限速
                 4002 -> "常规点限速"
+                //常点限速
+                4003 -> "条件点限速"
                 //道路种别
                 2008 -> "道路种别"
                 //道路方向
@@ -38,6 +42,64 @@ class SignUtil {
             }
         }
 
+        /**
+         * 右下角文字
+         */
+        fun getSignBottomRightText(data: RenderEntity): String {
+            return when (data.code) {
+                //常点限速
+                4003 -> getConditionLimitText(data)
+                else -> ""
+            }
+        }
+
+        /**
+         * 条件点限速文字
+         */
+
+        fun getConditionLimitText(data: RenderEntity): String {
+            var stringBuffer = StringBuffer()
+            try {
+                val dependent = data.properties["speedDependent"]
+                dependent?.let {
+                    val dependentInt = it.toInt()
+                    for (i in 31 downTo 0) {
+                        val bit = (dependentInt shr i) and 1
+                        if (bit == 1) {
+                            when (i) {
+                                0 -> stringBuffer.append("学校 ")
+                                1 -> stringBuffer.append("雾 ")
+                                2 -> stringBuffer.append("雨 ")
+                                3 -> stringBuffer.append("结冰 ")
+                                4 -> stringBuffer.append("其他天气 ")
+                                5 -> stringBuffer.append("减速带 ")
+                                6 -> stringBuffer.append("时间 ")
+                                7 -> stringBuffer.append("车辆 ")
+                                8 -> stringBuffer.append("建议 ")
+                                9 -> stringBuffer.append("雪 ")
+                                10 -> stringBuffer.append("其他 ")
+                            }
+                        }
+                    }
+                }
+
+            } catch (e: Exception) {
+
+            }
+            return stringBuffer.toString()
+        }
+
+        private fun isBitSet(number: Int, n: Int): Boolean {
+            // 创建一个二进制数,只有第 n 个 bit 位是 1,其他 bit 位是 0
+            val mask = 1 shl (n - 1)
+
+            // 将原始二进制数与上面创建的二进制数进行位运算
+            val result = number and mask
+
+            // 判断运算结果是否为 0
+            return result != 0
+        }
+
         /**
          * 获取限速值文字
          */
diff --git a/app/src/main/res/layout/adapter_sign.xml b/app/src/main/res/layout/adapter_sign.xml
index efcce91b..97fc3ea1 100644
--- a/app/src/main/res/layout/adapter_sign.xml
+++ b/app/src/main/res/layout/adapter_sign.xml
@@ -12,20 +12,33 @@
         android:layout_height="40dp"
         android:layout_marginLeft="19dp"
         android:layout_marginTop="4dp"
-        android:background="@drawable/shape_icon_speed_limit"
+        android:background="@drawable/icon_speed_limit"
         android:gravity="center"
         android:text="80"
         android:textColor="#2F2F2F"
-        android:textSize="14.67sp" />
+        android:textSize="14sp" />
+
     <TextView
         android:id="@+id/sign_bottom_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:gravity="center"
+        android:layout_alignParentBottom="true"
         android:layout_marginLeft="15dp"
         android:layout_marginBottom="5dp"
+        android:gravity="center"
         android:text="道路名"
-        android:layout_alignParentBottom="true"
         android:textColor="@color/white"
-        android:textSize="14.67sp" />
+        android:textSize="14sp" />
+
+    <TextView
+        android:id="@+id/sign_bottom_right_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:text="其他信息"
+        android:layout_alignTop="@id/sign_bottom_text"
+        android:textColor="@color/white"
+        android:layout_alignParentRight="true"
+        android:layout_marginRight="15dp"
+        android:textSize="14sp"/>
 </RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/menu/personal_center_menu.xml b/app/src/main/res/menu/personal_center_menu.xml
index 9e086aa6..f0aee773 100644
--- a/app/src/main/res/menu/personal_center_menu.xml
+++ b/app/src/main/res/menu/personal_center_menu.xml
@@ -16,7 +16,7 @@
         <item
             android:id="@+id/personal_center_menu_import_data"
             android:icon="@drawable/ic_baseline_import_export_24"
-            android:visible="false"
+            android:visible="true"
             android:title="导入数据" />
         <item
             android:id="@+id/personal_center_menu_import_yuan_data"
diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/TaskBean.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/TaskBean.kt
index 6c342ba0..b740d116 100644
--- a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/TaskBean.kt
+++ b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/TaskBean.kt
@@ -65,7 +65,7 @@ open class TaskBean @JvmOverloads constructor(
     var color: Int = 0xFF00AA
 ) : RealmObject() {
     fun getDownLoadUrl(): String {
-        return "${Constant.SERVER_ADDRESS}devcp/download?fileStr=$id"
+        return "${Constant.SERVER_ADDRESS}devcp/downFile?fileStr=$id"
     }
 
 }
\ No newline at end of file