Selaa lähdekoodia

【feat】【v3】
1.修复数据统计:结算积分统计异常
2.修复数据统计:总任务数统计异常
3.修复打卡/撤销打卡异常:公历日期不能为空

1.完善自定义重复日的逻辑

ChenYL 10 kuukautta sitten
vanhempi
sitoutus
ef1ba8d0f7

+ 1 - 1
src/main/java/com/punchsettle/server/pojo/punchIn/PiTaskRequest.java

@@ -135,7 +135,7 @@ public class PiTaskRequest {
     /**
      * 自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7)
      */
-    private String repeatCustomDay;
+    private List<String> repeatCustomDayList;
 
     /**
      * 额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)

+ 1 - 1
src/main/java/com/punchsettle/server/pojo/punchIn/PiTaskVO.java

@@ -122,7 +122,7 @@ public class PiTaskVO {
     /**
      * 自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7)
      */
-    private String repeatCustomDay;
+    private List<String> repeatCustomDayList;
 
     /**
      * 额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)

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

@@ -296,6 +296,9 @@ public class PunchInManagerImpl implements IPunchInManager {
         // 获取打卡任务
         PiTask piTask = Optional.ofNullable(piTaskService.getById(id)).orElseThrow(() -> BusinessException.fail("无法查询到该打卡任务"));
         BeanUtils.copyProperties(piTask, piTaskVO);
+        if (RepeatCategoryEnum.CUSTOM.equals(piTask.getRepeatCategory()) && StringUtils.hasText(piTask.getRepeatCustomDay())) {
+            piTaskVO.setRepeatCustomDayList(Arrays.stream(piTask.getRepeatCustomDay().split(",")).toList());
+        }
 
         // 获取拓展信息
         PiTaskExtQuery piTaskExtQuery = new PiTaskExtQuery();
@@ -355,7 +358,7 @@ public class PunchInManagerImpl implements IPunchInManager {
         if (CommonEnableStatusEnum.ENABLED.equals(request.getFullAttendanceStatus()) && (Objects.isNull(request.getFullAttendancePeriod()) || Objects.isNull(request.getFullAttendanceFaultToleranceCnt()))) {
             throw BusinessException.fail("启用了全勤奖励,全勤周期和全勤容错次数不能为空");
         }
-        if (RepeatCategoryEnum.CUSTOM.equals(request.getRepeatCategory()) && !StringUtils.hasText(request.getRepeatCustomDay())) {
+        if (RepeatCategoryEnum.CUSTOM.equals(request.getRepeatCategory()) && CollectionUtils.isEmpty(request.getRepeatCustomDayList())) {
             throw BusinessException.fail("自定义重复周期,自定义重复日不能为空");
         }
         if (PunchInExtraMethodEnum.FIXED.equals(request.getExtraMethod()) || PunchInExtraMethodEnum.INTERVAL.equals(request.getExtraMethod())) {
@@ -402,6 +405,9 @@ public class PunchInManagerImpl implements IPunchInManager {
         addPiTask.setTaskStatus(VersionStatusEnum.ACTIVE);
         addPiTask.setTaskVersion(0);
         addPiTask.setArchiveStatus(ArchiveStatusEnum.ACTIVE);
+        if (!CollectionUtils.isEmpty(request.getRepeatCustomDayList())) {
+            addPiTask.setRepeatCustomDay(String.join(",", request.getRepeatCustomDayList()));
+        }
 
         // 拓展信息(当天打卡)
         List<PiTaskExt> taskExtList = Optional.ofNullable(request.getTaskExtList()).orElse(List.of()).stream()