From 0b5f9300c6c17c822ed6101f3a9e099149350d86 Mon Sep 17 00:00:00 2001 From: liuzongkun999 Date: Mon, 10 Mar 2025 22:59:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E6=9C=AC=E5=88=86=E6=9E=90=E4=BF=AE?= =?UTF-8?q?=E6=94=B92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/oa/service/impl/SysOaCostServiceImpl.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java index 5478ba9..4e54be8 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java @@ -22,6 +22,7 @@ import com.ruoyi.oa.domain.bo.SysOaCostBo; import com.ruoyi.oa.service.ISysOaCostService; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -254,7 +255,7 @@ public class SysOaCostServiceImpl implements ISysOaCostService { .collect(Collectors.groupingBy( SysOaAttendance::getUserId, // 按用户 ID 分组 Collectors.summingDouble(attendance -> - (attendance.getAttendanceDay() * attendance.getDayLength() * 9 + attendance.getHour())/9 + (attendance.getDayLength() * 9 + attendance.getHour())/9 ) )); @@ -271,12 +272,13 @@ public class SysOaCostServiceImpl implements ISysOaCostService { continue; } SysOaCostList sysOaCostList = new SysOaCostList(); - Double dayNum = daynumMap.get(userId) == null ? 0.0 : daynumMap.get(userId); - Long laborCost = user.getLaborCost() == null ? 0L : user.getLaborCost(); + double dayNum = daynumMap.get(userId) == null ? 0.0 : daynumMap.get(userId); + BigDecimal dayNumBigDecimal = new BigDecimal(dayNum); + long laborCost = user.getLaborCost() == null ? 0L : user.getLaborCost(); sysOaCostList.setUserId(userId); sysOaCostList.setNickName(user.getNickName()); - sysOaCostList.setLaborCost(laborCost * dayNum); - sysOaCostList.setAttendanceNum(dayNum); + sysOaCostList.setLaborCost(dayNumBigDecimal.multiply(BigDecimal.valueOf(laborCost)).setScale(1, RoundingMode.HALF_UP).doubleValue()); + sysOaCostList.setAttendanceNum(dayNumBigDecimal.setScale(1, RoundingMode.HALF_UP).doubleValue()); UserCostList.add(sysOaCostList); }