成本分析修改2

This commit is contained in:
liuzongkun999
2025-03-10 22:59:57 +08:00
parent 5379f60c45
commit 0b5f9300c6

View File

@@ -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);
}