Pārlūkot izejas kodu

【feat】【v3】
1.修复结算逻辑异常
2.完善数据统计中总任务数的计算

ChenYL 10 mēneši atpakaļ
vecāks
revīzija
9e4589ab5b

+ 1 - 1
src/main/java/com/punchsettle/server/service/manager/impl/SettleCoreManagerImpl.java

@@ -73,7 +73,7 @@ public class SettleCoreManagerImpl implements ISettleCoreManager {
         // 单次打卡或者没有启用额外积分计算 则额外积分为0,否则进行
         if (!PunchInExtraMethodEnum.NONE.equals(piTask.getExtraMethod())
                 && !PunchInMethodEnum.SINGLE.equals(piTask.getPunchInMethod())) {
-           List<TaskExt> punchInOneExtList = piTaskExtList.stream()
+           List<TaskExt> punchInOneExtList = Optional.ofNullable(piTaskExtList).orElse(List.of()).stream()
                     .filter(v -> PunchInDimensionEnum.ONE_DAY.equals(v.getDimension())).collect(Collectors.toList());
             // 计算超出部分,获取额外次数
             int extraCount = getExtraCountInTask(piTask, piTaskHistory, holidayFlag);

+ 2 - 1
src/main/java/com/punchsettle/server/service/manager/impl/StatManagerImpl.java

@@ -241,7 +241,8 @@ public class StatManagerImpl implements IStatManager {
             // 获取结算数据
             List<SettleTaskRelaHistory> tempSettleTaskRelaHistories = settleTaskRelaHistoryMap.get(lineCategory);
             // 总任数
-            totalTaskCountList.add(Optional.ofNullable(tempSettleTaskRelaHistories).orElse(List.of()).size());
+            long totalTaskCount = Optional.ofNullable(tempSettleTaskRelaHistories).orElse(List.of()).stream().filter(v -> SettleResultEnum.SETTLED.equals(v.getSettleResult())).count();
+            totalTaskCountList.add((int) totalTaskCount);
 
             // 获取打卡记录
             List<PiTaskHistory> piTaskHistories = piTaskHistoryMap.get(lineCategory);