From 09faa36132c8cbada5327649875534ef01c1a3b1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 11 十二月 2025 20:44:31 +0800
Subject: [PATCH] feat: 优化任务里程统计

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
index 4413acb..487b710 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
@@ -598,8 +598,20 @@
         // 鎿嶄綔鍛戒护
         params.put("DispatchOrd_Check", "0"); // 3=鐩存帴寮哄埗瀹屾垚
         
-        // 缁╂晥鍜岃垂鐢�
-        params.put("DispatchOrdPerfomance", emergency.getTransferPrice() != null ? emergency.getTransferPrice().toString() : "0");
+        // 缁╂晥鍜岃垂鐢細纭繚鏁板�煎瓧娈典笉涓簄ull
+        String transferPrice = "0";
+        if (emergency.getTransferPrice() != null) {
+            try {
+                transferPrice = emergency.getTransferPrice().toString();
+                if (transferPrice.contains(".")) {
+                    transferPrice = new java.math.BigDecimal(transferPrice).stripTrailingZeros().toPlainString();
+                }
+            } catch (Exception e) {
+                log.warn("杞崲杞繍浠锋牸澶辫触锛屼换鍔D: {}, 浣跨敤榛樿鍊�0", task.getTaskId(), e);
+                transferPrice = "0";
+            }
+        }
+        params.put("DispatchOrdPerfomance", transferPrice);
         params.put("StretcherMoney", "0"); // 鎶媴鏋惰垂
         params.put("AddMoneyType", ""); // 闄勫姞椤圭洰
         params.put("AddMoney", "0"); // 闄勫姞椤圭洰璐圭敤
@@ -632,7 +644,8 @@
         params.put("ServiceOrdPtDoctorPhone", ""); // 鎮h�呭尰鐢熺數璇�
         params.put("TransferModeID", ""); // 杞繍鏂瑰紡
         params.put("ServiceOrdVIP", "0"); // VIP瀹㈡埛
-        params.put("ServiceOrdTraTxnPrice", emergency.getTransferPrice() != null ? emergency.getTransferPrice().toString() : "0"); // 鎴愪氦浠�
+        // 浠锋牸瀛楁澶嶇敤锛岀‘淇濅竴鑷存��
+        params.put("ServiceOrdTraTxnPrice", transferPrice); // 鎴愪氦浠�
         params.put("ServiceOrdTraPrePayment", "0"); // 闇�棰勪粯娆�
         params.put("SettlementPrice", "0"); // 缁撶畻浠�
         params.put("ServiceOrdTraPriceReason", ""); // 宸环鍘熷洜
@@ -649,7 +662,21 @@
         params.put("ServiceOrdEstimatedOrderDate", ""); // 棰勮娲惧崟鏃堕棿
         params.put("ServiceOrdEstimatedOrderDateOld", ""); // 鍘熼璁℃淳鍗曟椂闂�
         params.put("ServiceOrdViaDistance", "0"); // 涓�旇窛绂�
-        params.put("ServiceOrdTraDistance", emergency.getTransferDistance() != null ? emergency.getTransferDistance().toString() : "0"); // 璺濈
+        // 璺濈瀛楁锛氱‘淇濅笉涓虹┖锛岄伩鍏嶆棫绯荤粺鎺ュ彛鎶ラ敊
+        String transferDistance = "0";
+        if (emergency.getTransferDistance() != null) {
+            try {
+                transferDistance = emergency.getTransferDistance().toString();
+                // 鍘婚櫎鍙兘鐨勫皬鏁扮偣鍚庡浣欑殑0
+                if (transferDistance.contains(".")) {
+                    transferDistance = new java.math.BigDecimal(transferDistance).stripTrailingZeros().toPlainString();
+                }
+            } catch (Exception e) {
+                log.warn("杞崲杞繍璺濈澶辫触锛屼换鍔D: {}, 浣跨敤榛樿鍊�0", task.getTaskId(), e);
+                transferDistance = "0";
+            }
+        }
+        params.put("ServiceOrdTraDistance", transferDistance);
         params.put("OrderLevel", "0"); // 鏌ョ湅绛夌骇
         params.put("ServiceOrdDepartureType", "1"); // 棰勭害绫诲瀷
         params.put("ConditionLevel", "0"); // 鐥呴噸绾у埆

--
Gitblit v1.9.1