|
|
@@ -1,6 +1,19 @@
|
|
|
package com.punchsettle.server.service.manager.impl;
|
|
|
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalTime;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import org.junit.jupiter.api.Assertions;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.boot.test.context.SpringBootTest;
|
|
|
+import org.springframework.test.context.ActiveProfiles;
|
|
|
+
|
|
|
import com.punchsettle.server.atomic.entity.PiMultiTask;
|
|
|
+import com.punchsettle.server.atomic.entity.PiStatus;
|
|
|
import com.punchsettle.server.atomic.entity.PiTask;
|
|
|
import com.punchsettle.server.atomic.entity.PiTaskHistory;
|
|
|
import com.punchsettle.server.common.constant.CommonEnableStatusEnum;
|
|
|
@@ -10,17 +23,6 @@ import com.punchsettle.server.constant.PunchInMethodEnum;
|
|
|
import com.punchsettle.server.constant.PunchInResultEnum;
|
|
|
import com.punchsettle.server.constant.RepeatCategoryEnum;
|
|
|
import com.punchsettle.server.service.manager.IPunchInManager;
|
|
|
-import org.junit.jupiter.api.Assertions;
|
|
|
-import org.junit.jupiter.api.Test;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.boot.test.context.SpringBootTest;
|
|
|
-import org.springframework.test.context.ActiveProfiles;
|
|
|
-
|
|
|
-import java.time.LocalDate;
|
|
|
-import java.time.LocalTime;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* @author tyuio
|
|
|
@@ -159,7 +161,7 @@ class PunchInManagerImplTest {
|
|
|
piTaskHistory12.setPunchInDate("2025-04-26");
|
|
|
piTaskHistory12.setTimeTrack(LocalTime.parse("04:00:00.000"));
|
|
|
PunchInResultEnum punchInResult12 = punchInManager.judgePunchInResultInTask(piTask12, piTaskHistory12);
|
|
|
- Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult12);
|
|
|
+ Assertions.assertEquals(PunchInResultEnum.DONE, punchInResult12);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -198,7 +200,7 @@ class PunchInManagerImplTest {
|
|
|
piMultiTask3.setPunchInDoneCount(4);
|
|
|
List<PiTaskHistory> piTaskHistoryList3 = Arrays.asList(piTaskHistory1, piTaskHistory2, piTaskHistory3, piTaskHistory4);
|
|
|
PunchInResultEnum punchInResult3 = punchInManager.judgePunchInResultInMultiTask(piMultiTask3, piTaskHistoryList3);
|
|
|
- Assertions.assertEquals(PunchInResultEnum.DONE, punchInResult3);
|
|
|
+ Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult3);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
@@ -227,8 +229,64 @@ class PunchInManagerImplTest {
|
|
|
ContinueStageEnum continueStage1 = punchInManager.judgeContinueStage(piTask1, null, null, null);
|
|
|
Assertions.assertEquals(ContinueStageEnum.NONE, continueStage1);
|
|
|
|
|
|
- PiTask piTask2 = new PiTask();
|
|
|
- piTask2.setContinueStatus(CommonEnableStatusEnum.ENABLED);
|
|
|
- piTask2.setGraceDay(7);
|
|
|
+ PiTask piTask = new PiTask();
|
|
|
+ piTask.setContinueStatus(CommonEnableStatusEnum.ENABLED);
|
|
|
+ piTask.setGraceDay(7);
|
|
|
+ piTask.setContinueInterruptedCount(3);
|
|
|
+
|
|
|
+ // 宽限期-还在宽限期限内
|
|
|
+ PiStatus piStatus2 = new PiStatus();
|
|
|
+ piStatus2.setContinueStage(ContinueStageEnum.GRACE_STAGE);
|
|
|
+ piStatus2.setStageStartDate(LocalDate.parse("2025-04-23"));
|
|
|
+ ContinueStageEnum continueStage2 = punchInManager.judgeContinueStage(piTask, null, piStatus2, LocalDate.parse("2025-04-25"));
|
|
|
+ Assertions.assertEquals(ContinueStageEnum.GRACE_STAGE, continueStage2);
|
|
|
+
|
|
|
+ // 宽限期-已超过宽限期限,但是未完成打卡
|
|
|
+ PiStatus piStatus3 = new PiStatus();
|
|
|
+ piStatus3.setContinueStage(ContinueStageEnum.GRACE_STAGE);
|
|
|
+ piStatus3.setStageStartDate(LocalDate.parse("2025-04-23"));
|
|
|
+ ContinueStageEnum continueStage3 = punchInManager.judgeContinueStage(piTask, PunchInResultEnum.UNDONE, piStatus3, LocalDate.parse("2025-05-01"));
|
|
|
+ Assertions.assertEquals(ContinueStageEnum.GRACE_STAGE, continueStage3);
|
|
|
+
|
|
|
+ // 宽限期-已超过宽限期限,且已完成打卡,进入正常打卡期
|
|
|
+ PiStatus piStatus4 = new PiStatus();
|
|
|
+ piStatus4.setContinueStage(ContinueStageEnum.GRACE_STAGE);
|
|
|
+ piStatus4.setStageStartDate(LocalDate.parse("2025-04-23"));
|
|
|
+ ContinueStageEnum continueStage4 = punchInManager.judgeContinueStage(piTask, PunchInResultEnum.DONE, piStatus4, LocalDate.parse("2025-05-01"));
|
|
|
+ Assertions.assertEquals(ContinueStageEnum.NORMAL_STAGE, continueStage4);
|
|
|
+
|
|
|
+ // 正常打卡期-完成打卡则继续是正常打卡期
|
|
|
+ PiStatus piStatus5 = new PiStatus();
|
|
|
+ piStatus5.setContinueStage(ContinueStageEnum.NORMAL_STAGE);
|
|
|
+ ContinueStageEnum continueStage5 = punchInManager.judgeContinueStage(piTask, PunchInResultEnum.DONE, piStatus5, LocalDate.parse("2025-05-01"));
|
|
|
+ Assertions.assertEquals(ContinueStageEnum.NORMAL_STAGE, continueStage5);
|
|
|
+
|
|
|
+ // 正常打卡期-连续中断次数小于等于设置的中断次数 进入惩罚期
|
|
|
+ PiStatus piStatus6 = new PiStatus();
|
|
|
+ piStatus6.setContinueStage(ContinueStageEnum.NORMAL_STAGE);
|
|
|
+ piStatus6.setContinueInterruptedCount(2);
|
|
|
+ ContinueStageEnum continueStage6 = punchInManager.judgeContinueStage(piTask, PunchInResultEnum.UNDONE, piStatus6, LocalDate.parse("2025-05-01"));
|
|
|
+ Assertions.assertEquals(ContinueStageEnum.PENALTY_STAGE, continueStage6);
|
|
|
+
|
|
|
+ // 正常打卡期-连续中断次数大于等于设置的中断次数 重新进入宽限期
|
|
|
+ PiStatus piStatus7 = new PiStatus();
|
|
|
+ piStatus7.setContinueStage(ContinueStageEnum.NORMAL_STAGE);
|
|
|
+ piStatus7.setContinueInterruptedCount(3);
|
|
|
+ ContinueStageEnum continueStage7 = punchInManager.judgeContinueStage(piTask, PunchInResultEnum.UNDONE, piStatus7, LocalDate.parse("2025-05-01"));
|
|
|
+ Assertions.assertEquals(ContinueStageEnum.GRACE_STAGE, continueStage7);
|
|
|
+
|
|
|
+ // 惩罚期-仍处于惩罚期
|
|
|
+ PiStatus piStatus8 = new PiStatus();
|
|
|
+ piStatus8.setContinueStage(ContinueStageEnum.PENALTY_STAGE);
|
|
|
+ piStatus8.setStageEndDate(LocalDate.parse("2025-04-27"));
|
|
|
+ ContinueStageEnum continueStage8 = punchInManager.judgeContinueStage(piTask, PunchInResultEnum.UNDONE, piStatus8, LocalDate.parse("2025-04-23"));
|
|
|
+ Assertions.assertEquals(ContinueStageEnum.PENALTY_STAGE, continueStage8);
|
|
|
+
|
|
|
+ // 惩罚期-超出惩罚期,进入正常打卡期
|
|
|
+ PiStatus piStatus9 = new PiStatus();
|
|
|
+ piStatus9.setContinueStage(ContinueStageEnum.PENALTY_STAGE);
|
|
|
+ piStatus9.setStageEndDate(LocalDate.parse("2025-04-27"));
|
|
|
+ ContinueStageEnum continueStage9 = punchInManager.judgeContinueStage(piTask, PunchInResultEnum.UNDONE, piStatus9, LocalDate.parse("2025-04-28"));
|
|
|
+ Assertions.assertEquals(ContinueStageEnum.NORMAL_STAGE, continueStage9);
|
|
|
}
|
|
|
}
|