feat(servicing): 优化订单详情页面布局和功能

-调整订单信息显示布局,增加订单来源显示
- 优化地图标记添加逻辑,提高地图展示效果
- 改进路径规划功能,优化预计到达时间计算方式- 更新车辆损伤照片加载逻辑,提高数据展示效率
- 修复部分页面样式问题,提升用户体验
This commit is contained in:
songzhiling
2025-04-25 18:01:44 +08:00
parent c606ed95cd
commit b0c2f7352d
20 changed files with 794 additions and 851 deletions

View File

@ -16,7 +16,6 @@ import com.za.common.log.LogUtil
import com.za.common.util.DeviceUtil
import com.za.service.mqtt.MyMqttClient
import com.za.servicing.R
import java.util.concurrent.atomic.AtomicReference
interface PushListener {
fun newOrderMsg(jpushBean : JpushBean)
@ -30,7 +29,7 @@ interface PushListener {
data class LastJPushBean(val msg : Int, val time : Long = System.nanoTime())
object ServiceManager {
private val pushListener = AtomicReference<PushListener>()
private var pushListener : PushListener? = null
private var lastJPushBean : LastJPushBean? = null
private const val DUPLICATE_MSG_THRESHOLD = 3000L // 3秒
@ -56,16 +55,15 @@ object ServiceManager {
// Register push listener
fun registerPushListener(listener : PushListener?) {
listener?.let {
pushListener.set(it)
LogUtil.print("ServiceManager", "Registered push listener: ${it.javaClass.simpleName}")
}
this.pushListener = listener
LogUtil.print("ServiceManager",
"Registered push listener: ${pushListener?.javaClass?.simpleName}")
}
// Handle incoming push messages
@Synchronized
fun handlerPushMsg(msg : String) {
LogUtil.print("JpushMessage", "Received push message: $msg")
LogUtil.print("handlerPushMsg", "Received push message: $msg")
// 优化后的重复消息判断
lastJPushBean?.let {
@ -76,12 +74,12 @@ object ServiceManager {
}
if (msg.startsWith("broadcast:")) {
lastJPushBean = LastJPushBean(msg.hashCode())
lastJPushBean = LastJPushBean(msg = msg.hashCode())
handleBroadcast(msg)
return
}
try {
lastJPushBean = LastJPushBean(msg.hashCode())
lastJPushBean = LastJPushBean(msg = msg.hashCode())
val jpushOrderInfoBean = Gson().fromJson(msg, JpushBean::class.java)
sendSystemNotificationFromMessage(jpushOrderInfoBean)
when (jpushOrderInfoBean.pushType) {
@ -103,7 +101,7 @@ object ServiceManager {
private fun handleBroadcast(msg : String) {
try {
val content = msg.substring(10)
pushListener.get()?.broadcast(content)
pushListener?.broadcast(content)
sendNotification(GlobalData.application, content)
LogUtil.print("JpushMessage", "Broadcast content: $content")
} catch (e : Exception) {
@ -124,7 +122,9 @@ object ServiceManager {
// Handle new order messages
private fun newOrderMsg(jpushOrderBean : JpushBean) {
try {
pushListener.get()?.newOrderMsg(jpushOrderBean)
LogUtil.print("JpushMessage",
"Handling new order message: $pushListener ${pushListener?.javaClass?.simpleName}")
pushListener?.newOrderMsg(jpushOrderBean)
} catch (e : Exception) {
LogUtil.print("JpushMessage", "Failed to handle new order message: ${e.message}")
}
@ -132,22 +132,22 @@ object ServiceManager {
// Handle give up order messages
private fun giveUpOrder(jpushOrderBean : JpushBean) {
pushListener.get()?.giveUpOrder(jpushOrderBean)
pushListener?.giveUpOrder(jpushOrderBean)
}
// Handle revoke order messages
private fun revokeOrder(jpushOrderBean : JpushBean) {
pushListener.get()?.revokeOrder(jpushOrderBean)
pushListener?.revokeOrder(jpushOrderBean)
}
// Handle re-dispatch order messages
private fun reDispatchOrder(jpushOrderBean : JpushBean) {
pushListener.get()?.reDispatchOrder(jpushOrderBean)
pushListener?.reDispatchOrder(jpushOrderBean)
}
// Handle important tip messages
private fun importantTip(jpushOrderBean : JpushBean) {
pushListener.get()?.importantTip(jpushOrderBean)
pushListener?.importantTip(jpushOrderBean)
}
// Disconnect from JPush and MQTT