From cf330c6a6c2ae7ec86d20de465d5af27a4684cf6 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 03 十一月 2026 19:16:58 +0800
Subject: [PATCH] 巡检任务频次增加“每年”支持

---
 src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
index bce327f..ff2f308 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -190,13 +190,20 @@
             deviceLedger.setCreateUser(SecurityUtils.getUserId().intValue());
         }
         BeanUtils.copyProperties(c, deviceLedger);
-        // 閫氳繃鍚◣鍗曚环銆佹暟閲忋�佺◣鐜囪绠楀惈绋庢�讳环锛屼笉鍚◣鎬讳环
-        deviceLedger.setTaxIncludingPriceTotal(c.getTaxIncludingPriceUnit());
-        deviceLedger.setNumber(BigDecimal.ONE);
+        // 鏁伴噺锛欵xcel 鏈~鏃舵寜 1 鍙板鐞�
+        if (deviceLedger.getNumber() == null) {
+            deviceLedger.setNumber(BigDecimal.ONE);
+        }
+        // 鍚◣鎬讳环锛欵xcel 鏈~鏃舵寜 鍚◣鍗曚环 脳 鏁伴噺 璁$畻
+        if (deviceLedger.getTaxIncludingPriceTotal() == null && deviceLedger.getTaxIncludingPriceUnit() != null) {
+            deviceLedger.setTaxIncludingPriceTotal(deviceLedger.getTaxIncludingPriceUnit().multiply(deviceLedger.getNumber()));
+        }
         deviceLedger.setPlanRuntimeTime(DateUtils.toLocalDate(c.getPlanRuntimeTime()));
-        // 璁$畻涓嶅惈绋庢�讳环锛屽鐞嗙┖鍊兼儏鍐�
-        if (deviceLedger.getTaxIncludingPriceTotal() != null && c.getTaxRate() != null) {
-            deviceLedger.setUnTaxIncludingPriceTotal(deviceLedger.getTaxIncludingPriceTotal().divide(BigDecimal.ONE.add(c.getTaxRate()), 2, RoundingMode.HALF_UP));
+        // 涓嶅惈绋庢�讳环锛氬惈绋庢�讳环涓庣◣鐜囬兘鏈夊�兼椂鎸夌◣鐜囨姌绠楋紝绋庣巼鎸夌櫨鍒嗘暟瀛樺偍锛�13 琛ㄧず 13%锛夛紝涓庡彴璐︾幇鏈夋暟鎹彛寰勪竴鑷�
+        if (deviceLedger.getTaxIncludingPriceTotal() != null && deviceLedger.getTaxRate() != null) {
+            BigDecimal rate = deviceLedger.getTaxRate().divide(new BigDecimal(100), 4, RoundingMode.HALF_UP);
+            deviceLedger.setUnTaxIncludingPriceTotal(deviceLedger.getTaxIncludingPriceTotal()
+                    .divide(BigDecimal.ONE.add(rate), 2, RoundingMode.HALF_UP));
         }
         return deviceLedger;
     }

--
Gitblit v1.9.3