瀏覽代碼

【feat】【v3】
1.重构结算逻辑代码
2.增加测试用例

ChenYL 11 月之前
父節點
當前提交
296377f6fe
共有 21 個文件被更改,包括 1571 次插入279 次删除
  1. 3 1
      README.md
  2. 6 0
      pom.xml
  3. 42 0
      src/main/java/com/punchsettle/server/atomic/ContinueTask.java
  4. 22 0
      src/main/java/com/punchsettle/server/atomic/TaskExt.java
  5. 5 3
      src/main/java/com/punchsettle/server/atomic/entity/PiMultiTask.java
  6. 2 1
      src/main/java/com/punchsettle/server/atomic/entity/PiMultiTaskExt.java
  7. 2 1
      src/main/java/com/punchsettle/server/atomic/entity/PiTask.java
  8. 2 1
      src/main/java/com/punchsettle/server/atomic/entity/PiTaskExt.java
  9. 7 6
      src/main/java/com/punchsettle/server/service/manager/IPunchInManager.java
  10. 21 19
      src/main/java/com/punchsettle/server/service/manager/impl/CalendarManagerImpl.java
  11. 9 7
      src/main/java/com/punchsettle/server/service/manager/impl/PunchInManagerImpl.java
  12. 51 38
      src/main/java/com/punchsettle/server/service/manager/impl/PunchInSettleManagerImpl.java
  13. 75 201
      src/main/java/com/punchsettle/server/service/manager/impl/SettleManagerImpl.java
  14. 1 1
      src/main/java/com/punchsettle/server/service/manager/impl/SysCalendarServiceImpl.java
  15. 3 0
      src/main/java/com/punchsettle/server/utiis/DateUtils.java
  16. 49 0
      src/test/java/com/punchsettle/server/service/manager/impl/CalendarManagerImplTest.java
  17. 234 0
      src/test/java/com/punchsettle/server/service/manager/impl/PunchInManagerImplTest.java
  18. 117 0
      src/test/java/com/punchsettle/server/utiis/DateUtilsTest.java
  19. 20 0
      src/test/resources/application-test.yaml
  20. 365 0
      src/test/resources/db/data.sql
  21. 535 0
      src/test/resources/db/schema.sql

+ 3 - 1
README.md

@@ -14,4 +14,6 @@
 
 ## 参考
 
-* [SpringBoot节假日(OneAPI和天聚数行)](https://blog.csdn.net/m0_55841258/article/details/145198829)
+* [SpringBoot节假日(OneAPI和天聚数行)](https://blog.csdn.net/m0_55841258/article/details/145198829)
+* [Spring Boot 基于 JUnit 5 实现单元测试](https://www.jianshu.com/p/4648fd55830e)
+* [JUnit5单元测试框架的使用教程与简单实例](https://blog.csdn.net/pan_junbiao/article/details/104296855)

+ 6 - 0
pom.xml

@@ -78,6 +78,12 @@
             <artifactId>mysql-connector-j</artifactId>
             <scope>runtime</scope>
         </dependency>
+        <!-- H2 数据库依赖 -->
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>

+ 42 - 0
src/main/java/com/punchsettle/server/atomic/ContinueTask.java

@@ -0,0 +1,42 @@
+package com.punchsettle.server.atomic;
+
+import com.punchsettle.server.common.constant.CommonEnableStatusEnum;
+
+/**
+ * @author tyuio
+ * @version 1.0.0
+ * @date 2025/4/23 15:43
+ * @description 连续任务
+ */
+public interface ContinueTask {
+
+    /**
+     * 获取连续任务状态
+     * @return
+     */
+    CommonEnableStatusEnum getContinueStatus();
+
+    /**
+     * 是否启用任务积分计算(ENABLED-启用,DISABLED-关闭)
+     * @return
+     */
+    CommonEnableStatusEnum getTaskPointsStatus();
+
+    /**
+     * 获取 宽限期(单位:天)
+     * @return
+     */
+    Integer getGraceDay();
+
+    /**
+     * 获取 连续中断次数
+     * @return
+     */
+    Integer getContinueInterruptedCount();
+
+    /**
+     * 获取 惩罚天数
+     * @return
+     */
+    Integer getPenaltyDay();
+}

+ 22 - 0
src/main/java/com/punchsettle/server/atomic/TaskExt.java

@@ -0,0 +1,22 @@
+package com.punchsettle.server.atomic;
+
+/**
+ * @author tyuio
+ * @version 1.0.0
+ * @date 2025/4/23 15:43
+ * @description 任务拓展信息
+ */
+public interface TaskExt {
+
+    /**
+     * 获取起始值(单位:次)
+     * @return
+     */
+    Integer getInitialValue();
+
+    /**
+     * 获取奖励的积分(额外)
+     * @return
+     */
+    Integer getExtraPoints();
+}

+ 5 - 3
src/main/java/com/punchsettle/server/atomic/entity/PiMultiTask.java

@@ -3,6 +3,7 @@ package com.punchsettle.server.atomic.entity;
 import java.io.Serial;
 import java.io.Serializable;
 
+import com.punchsettle.server.atomic.ContinueTask;
 import com.punchsettle.server.common.pojo.BaseEntity;
 
 import com.punchsettle.server.constant.ArchiveStatusEnum;
@@ -22,7 +23,7 @@ import lombok.EqualsAndHashCode;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Table(name = "pi_multi_task")
-public class PiMultiTask extends BaseEntity implements Serializable {
+public class PiMultiTask extends BaseEntity implements Serializable, ContinueTask {
 
     @Serial
     private static final long serialVersionUID = -8616950431388861152L;
@@ -87,8 +88,8 @@ public class PiMultiTask extends BaseEntity implements Serializable {
     /**
      * 连续中断次数
      */
-    @Column(name = "continue_interrupted_day")
-    private Integer continueInterruptedDay;
+    @Column(name = "continue_interrupted_count")
+    private Integer continueInterruptedCount;
 
     /**
      * 惩罚天数(单位:天)
@@ -108,4 +109,5 @@ public class PiMultiTask extends BaseEntity implements Serializable {
      */
     @Column(name = "extra_points")
     private Integer extraPoints;
+
 }

+ 2 - 1
src/main/java/com/punchsettle/server/atomic/entity/PiMultiTaskExt.java

@@ -3,6 +3,7 @@ package com.punchsettle.server.atomic.entity;
 import java.io.Serial;
 import java.io.Serializable;
 
+import com.punchsettle.server.atomic.TaskExt;
 import com.punchsettle.server.common.pojo.BaseEntity;
 
 import jakarta.persistence.Column;
@@ -19,7 +20,7 @@ import lombok.EqualsAndHashCode;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Table(name = "pi_multi_task_ext")
-public class PiMultiTaskExt extends BaseEntity implements Serializable {
+public class PiMultiTaskExt extends BaseEntity implements Serializable, TaskExt {
 
     @Serial
     private static final long serialVersionUID = -1842326979030637250L;

+ 2 - 1
src/main/java/com/punchsettle/server/atomic/entity/PiTask.java

@@ -5,6 +5,7 @@ import java.io.Serializable;
 import java.time.LocalDate;
 import java.time.LocalTime;
 
+import com.punchsettle.server.atomic.ContinueTask;
 import com.punchsettle.server.common.pojo.BaseEntity;
 import com.punchsettle.server.constant.ArchiveStatusEnum;
 import com.punchsettle.server.common.constant.CommonEnableStatusEnum;
@@ -27,7 +28,7 @@ import lombok.EqualsAndHashCode;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Table(name = "pi_task")
-public class PiTask extends BaseEntity implements Serializable {
+public class PiTask extends BaseEntity implements Serializable, ContinueTask {
 
     @Serial
     private static final long serialVersionUID = -8123216246400989207L;

+ 2 - 1
src/main/java/com/punchsettle/server/atomic/entity/PiTaskExt.java

@@ -3,6 +3,7 @@ package com.punchsettle.server.atomic.entity;
 import java.io.Serial;
 import java.io.Serializable;
 
+import com.punchsettle.server.atomic.TaskExt;
 import com.punchsettle.server.common.pojo.BaseEntity;
 
 import com.punchsettle.server.constant.PunchInDimensionEnum;
@@ -20,7 +21,7 @@ import lombok.EqualsAndHashCode;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Table(name = "pi_task_ext")
-public class PiTaskExt extends BaseEntity implements Serializable {
+public class PiTaskExt extends BaseEntity implements Serializable, TaskExt {
 
     @Serial
     private static final long serialVersionUID = -400469506734374326L;

+ 7 - 6
src/main/java/com/punchsettle/server/service/manager/IPunchInManager.java

@@ -1,5 +1,6 @@
 package com.punchsettle.server.service.manager;
 
+import com.punchsettle.server.atomic.ContinueTask;
 import com.punchsettle.server.atomic.entity.PiMultiTask;
 import com.punchsettle.server.atomic.entity.PiStatus;
 import com.punchsettle.server.atomic.entity.PiTask;
@@ -54,12 +55,12 @@ public interface IPunchInManager {
     int getPunchInTotalCountInRange(RepeatCategoryEnum repeatCategory, String repeatCustomDay, LocalDate repeatStartDate, LocalDate repeatEndDate);
 
     /**
-     * 判断打卡任务在指定日期的连续打卡阶段
-     * @param piTask
-     * @param piTaskHistory
-     * @param piStatus
-     * @param punchInDate
+     * 判断连续任务在指定日期的连续打卡阶段
+     * @param continueTask 连续任务
+     * @param punchInResult 打卡结果
+     * @param piStatus 打卡状态
+     * @param punchInDate 打卡日期
      * @return
      */
-    ContinueStageEnum judgeContinueStageInTask(PiTask piTask, PiTaskHistory piTaskHistory, PiStatus piStatus, LocalDate punchInDate);
+    ContinueStageEnum judgeContinueStage(ContinueTask continueTask, PunchInResultEnum punchInResult, PiStatus piStatus, LocalDate punchInDate);
 }

+ 21 - 19
src/main/java/com/punchsettle/server/service/manager/impl/CalendarManagerImpl.java

@@ -1,5 +1,19 @@
 package com.punchsettle.server.service.manager.impl;
 
+import java.time.LocalDate;
+import java.time.temporal.ChronoUnit;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
 import com.punchsettle.server.atomic.entity.SysCalendar;
 import com.punchsettle.server.atomic.service.ISysCalendarService;
 import com.punchsettle.server.common.constant.CommonYesNoEnum;
@@ -11,23 +25,9 @@ import com.punchsettle.server.feign.dto.HolidayData;
 import com.punchsettle.server.feign.dto.HolidayQuery;
 import com.punchsettle.server.feign.dto.OneApiResponse;
 import com.punchsettle.server.service.manager.ICalendarManager;
-import com.punchsettle.server.utiis.DateUtils;
 import com.punchsettle.server.utiis.SpringUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.CacheManager;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
-import javax.swing.*;
-import java.time.LocalDate;
-import java.time.temporal.ChronoUnit;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @author tyuio
@@ -96,9 +96,11 @@ public class CalendarManagerImpl implements ICalendarManager {
         Assert.isNullInBusiness(gregorianDate, "公历日期不能为空");
         // 先尝试从数据库中获取,没有再拉取数据
         SysCalendar sysCalendar = sysCalendarService.getByGregorianDate(gregorianDate);
-        if (Objects.isNull(sysCalendar)) {
-            SpringUtils.getBean(CalendarManagerImpl.class).refreshCalendar(gregorianDate);
+        if (Objects.nonNull(sysCalendar)) {
+            return sysCalendar;
         }
+
+        SpringUtils.getBean(CalendarManagerImpl.class).refreshCalendar(gregorianDate);
         return sysCalendarService.getByGregorianDate(gregorianDate);
     }
 
@@ -117,13 +119,13 @@ public class CalendarManagerImpl implements ICalendarManager {
     public boolean judgeHoliday(String gregorianDate) {
         Assert.isNullInBusiness(gregorianDate, "公历日期不能为空");
         SysCalendar sysCalendar = SpringUtils.getBean(CalendarManagerImpl.class).getCalendarByGregorianDate(gregorianDate);
-        return CalendarStatusEnum.HOLIDAY.equals(sysCalendar);
+        return CalendarStatusEnum.HOLIDAY.equals(sysCalendar.getStatus());
     }
 
     @Override
     public boolean judgeWorkday(String gregorianDate) {
         Assert.isNullInBusiness(gregorianDate, "公历日期不能为空");
         SysCalendar sysCalendar = SpringUtils.getBean(CalendarManagerImpl.class).getCalendarByGregorianDate(gregorianDate);
-        return CalendarStatusEnum.WORKDAY.equals(sysCalendar);
+        return CalendarStatusEnum.WORKDAY.equals(sysCalendar.getStatus());
     }
 }

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

@@ -10,6 +10,7 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.punchsettle.server.atomic.ContinueTask;
 import com.punchsettle.server.atomic.entity.PiStatus;
 import com.punchsettle.server.constant.ContinueStageEnum;
 import com.punchsettle.server.utiis.DateUtils;
@@ -128,7 +129,8 @@ public class PunchInManagerImpl implements IPunchInManager {
 
     @Override
     public PunchInResultEnum judgePunchInResultInMultiTask(PiMultiTask piMultiTask, List<PiTaskHistory> piTaskHistoryList) {
-        if (CollectionUtils.isEmpty(piTaskHistoryList)) {
+        // 没有打卡记录 或者 没有启用多任务 则直接返回未完成
+        if (CollectionUtils.isEmpty(piTaskHistoryList) || CommonEnableStatusEnum.DISABLED.equals(piMultiTask.getTaskPointsStatus())) {
             return PunchInResultEnum.UNDONE;
         }
 
@@ -170,8 +172,8 @@ public class PunchInManagerImpl implements IPunchInManager {
     }
 
     @Override
-    public ContinueStageEnum judgeContinueStageInTask(PiTask piTask, PiTaskHistory piTaskHistory, PiStatus piStatus, LocalDate punchInDate) {
-        if (CommonEnableStatusEnum.DISABLED.equals(piTask.getContinueStatus())) {
+    public ContinueStageEnum judgeContinueStage(ContinueTask continueTask, PunchInResultEnum punchInResult, PiStatus piStatus, LocalDate punchInDate) {
+        if (CommonEnableStatusEnum.DISABLED.equals(continueTask.getContinueStatus())) {
             return ContinueStageEnum.NONE;
         }
 
@@ -179,14 +181,14 @@ public class PunchInManagerImpl implements IPunchInManager {
 
         // 宽限期
         if (ContinueStageEnum.GRACE_STAGE.equals(piStatus.getContinueStage())) {
-            LocalDate graceDay = piStatus.getStageStartDate().plusDays(piTask.getGraceDay());
+            LocalDate graceDay = piStatus.getStageStartDate().plusDays(continueTask.getGraceDay());
             // 仍处于宽限期限内
             if (punchInDate.compareTo(graceDay) <= 0) {
                 return ContinueStageEnum.GRACE_STAGE;
             }
 
             // 已超过宽限期限,但是未完成打卡
-            if (PunchInResultEnum.UNDONE.equals(piTaskHistory.getPunchInResult())) {
+            if (PunchInResultEnum.UNDONE.equals(punchInResult)) {
                 return ContinueStageEnum.GRACE_STAGE;
             }
 
@@ -197,12 +199,12 @@ public class PunchInManagerImpl implements IPunchInManager {
         // 正常打卡期
         if (ContinueStageEnum.NORMAL_STAGE.equals(piStatus.getContinueStage())) {
             // 完成打卡则继续是正常打卡期,否则是惩罚期
-            if (PunchInResultEnum.DONE.equals(piTaskHistory.getPunchInResult())) {
+            if (PunchInResultEnum.DONE.equals(punchInResult)) {
                 return ContinueStageEnum.NORMAL_STAGE;
             }
 
             // 连续中断次数大于等于设置的中断次数,重新进入宽限期
-            if (piStatus.getContinueInterruptedCount() + 1 > piTask.getContinueInterruptedCount()) {
+            if (piStatus.getContinueInterruptedCount() + 1 > continueTask.getContinueInterruptedCount()) {
                 return ContinueStageEnum.GRACE_STAGE;
             }
 

+ 51 - 38
src/main/java/com/punchsettle/server/service/manager/impl/PunchInSettleManagerImpl.java

@@ -13,6 +13,7 @@ import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+import com.punchsettle.server.atomic.ContinueTask;
 import com.punchsettle.server.atomic.entity.Account;
 import com.punchsettle.server.atomic.entity.AccountTransferHistory;
 import com.punchsettle.server.atomic.service.IAccountService;
@@ -282,19 +283,18 @@ public class PunchInSettleManagerImpl implements IPunchInSettleManager {
             piMultiTaskHistory.setPunchInResult(punchInResult);
             updatePiMultiTaskHistory.setPunchInResult(punchInResult);
 
+            // 这里少了连续阶段的判断
+
             // 设置多任务统计时间
             piStatusInMultiTask.setStatusDate(punchInDateStr);
-            // 设置多任务连续状态
-            ContinueStatusEnum oldTaskContinueStatus = piStatusInMultiTask.getTaskContinueStatus();
-            piStatusInMultiTask.setTaskContinueStatus(punchInResult.equals(PunchInResultEnum.DONE)
-                    ? ContinueStatusEnum.CONTINUE : ContinueStatusEnum.INTERRUPTED);
-            piStatusInMultiTask.setTaskContinueDay(oldTaskContinueStatus.equals(piStatusInMultiTask.getTaskContinueStatus())
-                    ? piStatusInMultiTask.getTaskContinueDay() + 1 : 1);
+
+            // 刷新打卡状态中的连续任务数据
+            refreshContinueData(piStatusInMultiTask, punchInResult, piMultiTask, punchInDate);
 
             // 计算多任务积分
             int multiTaskPoints = settleManager.calculatePointsInMultiTask(piMultiTask,
                     punchInSettle.getPiMultiTaskExtList(), piMultiTaskHistory,
-                    punchInSettle.getPiStatus());
+                    piStatusInMultiTask);
             settlePoints += multiTaskPoints;
 
             // 设置打卡记录表信息
@@ -547,38 +547,9 @@ public class PunchInSettleManagerImpl implements IPunchInSettleManager {
      * @param yearMonth 月份数
      */
     private void refreshPiStatus(PiStatus piStatus, PunchInResultEnum punchInResult, PiTask piTask, PiTaskHistory piTaskHistory, LocalDate punchInDate, boolean isMonday, boolean isFirstDayOfMonth, String yearWeek, String yearMonth) {
-        // 设置任务连续状态
-        ContinueStatusEnum oldTaskContinueStatus = piStatus.getTaskContinueStatus();
-        piStatus.setTaskContinueStatus(punchInResult.equals(PunchInResultEnum.DONE)
-                ? ContinueStatusEnum.CONTINUE : ContinueStatusEnum.INTERRUPTED);
-        piStatus.setTaskContinueDay(oldTaskContinueStatus.equals(piStatus.getTaskContinueStatus())
-                ? piStatus.getTaskContinueDay() + 1 : 1);
 
-        // 旧的连续阶段
-        ContinueStageEnum oldContinueStage = piStatus.getContinueStage();
-        // 判断当前处于的连续阶段
-        ContinueStageEnum continueStageResult =
-                punchInManager.judgeContinueStageInTask(piTask, piTaskHistory, piStatus, punchInDate);
-        piStatus.setContinueStage(continueStageResult);
-        // 下面3种情况不处理:宽限期 变 宽限期;正常打卡期 变 正常打卡期;惩罚期 变 惩罚期;
-        // 宽限期 变 正常打卡期,则设置阶段开始时间,重置中断次数
-        if (ContinueStageEnum.GRACE_STAGE.equals(oldContinueStage)
-                && ContinueStageEnum.NORMAL_STAGE.equals(continueStageResult)) {
-            piStatus.setStageStartDate(punchInDate);
-            piStatus.setContinueInterruptedCount(0);
-        }
-        // 如果正常打卡期 变 惩罚期,则设置阶段开始时间和阶段结束时间,增加中断次数
-        if (ContinueStageEnum.NORMAL_STAGE.equals(oldContinueStage)
-                && ContinueStageEnum.PENALTY_STAGE.equals(continueStageResult)) {
-            piStatus.setStageStartDate(punchInDate);
-            piStatus.setStageEndDate(punchInDate.plusDays(piTask.getPenaltyDay()));
-            piStatus.setContinueInterruptedCount(piStatus.getContinueInterruptedCount() + 1);
-        }
-        // 如果惩罚期 变 正常打卡期,则设置阶段开始时间
-        if (ContinueStageEnum.PENALTY_STAGE.equals(oldContinueStage)
-                && ContinueStageEnum.NORMAL_STAGE.equals(continueStageResult)) {
-            piStatus.setStageStartDate(punchInDate);
-        }
+        // 刷新打卡状态中的连续任务数据
+        refreshContinueData(piStatus, punchInResult, piTask, punchInDate);
 
         // 周一或月初
         if (isMonday || isFirstDayOfMonth) {
@@ -660,6 +631,48 @@ public class PunchInSettleManagerImpl implements IPunchInSettleManager {
         }
     }
 
+    /**
+     * 刷新打卡状态中的连续任务数据
+     * @param piStatus
+     * @param punchInResult
+     * @param continueTask
+     * @param punchInDate
+     */
+    private void refreshContinueData(PiStatus piStatus, PunchInResultEnum punchInResult, ContinueTask continueTask, LocalDate punchInDate) {
+        // 设置任务连续状态
+        ContinueStatusEnum oldTaskContinueStatus = piStatus.getTaskContinueStatus();
+        piStatus.setTaskContinueStatus(punchInResult.equals(PunchInResultEnum.DONE)
+                ? ContinueStatusEnum.CONTINUE : ContinueStatusEnum.INTERRUPTED);
+        piStatus.setTaskContinueDay(oldTaskContinueStatus.equals(piStatus.getTaskContinueStatus())
+                ? piStatus.getTaskContinueDay() + 1 : 1);
+
+        // 旧的连续阶段
+        ContinueStageEnum oldContinueStage = piStatus.getContinueStage();
+        // 判断当前处于的连续阶段
+        ContinueStageEnum continueStageResult =
+                punchInManager.judgeContinueStage(continueTask, punchInResult, piStatus, punchInDate);
+        piStatus.setContinueStage(continueStageResult);
+        // 下面3种情况不处理:宽限期 变 宽限期;正常打卡期 变 正常打卡期;惩罚期 变 惩罚期;
+        // 宽限期 变 正常打卡期,则设置阶段开始时间,重置中断次数
+        if (ContinueStageEnum.GRACE_STAGE.equals(oldContinueStage)
+                && ContinueStageEnum.NORMAL_STAGE.equals(continueStageResult)) {
+            piStatus.setStageStartDate(punchInDate);
+            piStatus.setContinueInterruptedCount(0);
+        }
+        // 如果正常打卡期 变 惩罚期,则设置阶段开始时间和阶段结束时间,增加中断次数
+        if (ContinueStageEnum.NORMAL_STAGE.equals(oldContinueStage)
+                && ContinueStageEnum.PENALTY_STAGE.equals(continueStageResult)) {
+            piStatus.setStageStartDate(punchInDate);
+            piStatus.setStageEndDate(punchInDate.plusDays(continueTask.getPenaltyDay()));
+            piStatus.setContinueInterruptedCount(piStatus.getContinueInterruptedCount() + 1);
+        }
+        // 如果惩罚期 变 正常打卡期,则设置阶段开始时间
+        if (ContinueStageEnum.PENALTY_STAGE.equals(oldContinueStage)
+                && ContinueStageEnum.NORMAL_STAGE.equals(continueStageResult)) {
+            piStatus.setStageStartDate(punchInDate);
+        }
+    }
+
     /**
      * 构建周统计数据
      * @param userId 用户ID

+ 75 - 201
src/main/java/com/punchsettle/server/service/manager/impl/SettleManagerImpl.java

@@ -9,6 +9,8 @@ import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
+import com.punchsettle.server.atomic.ContinueTask;
+import com.punchsettle.server.atomic.TaskExt;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -46,7 +48,8 @@ public class SettleManagerImpl implements ISettleManager {
     private ICalendarManager calendarManager;
 
     @Override
-    public int calculatePointsInTask(PiTask piTask, List<PiTaskExt> piTaskExtList, PiTaskHistory piTaskHistory, PiStatus piStatus) {
+    public int calculatePointsInTask(PiTask piTask, List<PiTaskExt> piTaskExtList, PiTaskHistory piTaskHistory,
+        PiStatus piStatus) {
         // 未完成打卡,积分为0
         if (PunchInResultEnum.UNDONE.equals(piTaskHistory.getPunchInResult())) {
             return 0;
@@ -60,9 +63,19 @@ public class SettleManagerImpl implements ISettleManager {
         int basicPoints = Optional.ofNullable(piTask.getPoints()).orElse(0);
 
         // 额外积分计算
-        List<PiTaskExt> punchInOneExtList = piTaskExtList.stream()
-            .filter(v -> PunchInDimensionEnum.ONE_DAY.equals(v.getDimension())).collect(Collectors.toList());
-        basicPoints += calculateExtraPointsInTask(piTask, punchInOneExtList, piTaskHistory, holidayFlag);
+        int extraPoints = 0;
+        // 单次打卡或者没有启用额外积分计算 则额外积分为0,否则进行
+        if (!PunchInExtraMethodEnum.NONE.equals(piTask.getExtraMethod())
+                && !PunchInMethodEnum.SINGLE.equals(piTask.getPunchInMethod())) {
+           List<TaskExt> punchInOneExtList = piTaskExtList.stream()
+                    .filter(v -> PunchInDimensionEnum.ONE_DAY.equals(v.getDimension())).collect(Collectors.toList());
+            // 计算超出部分,获取额外次数
+            int extraCount = getExtraCountInTask(piTask, piTaskHistory, holidayFlag);
+            extraPoints = calculateExtraPoints(piTask.getExtraMethod(), extraCount, piTask.getExtraPoints(), punchInOneExtList);
+        }
+
+        // 加上基本积分供全勤和节假日使用
+        basicPoints += extraPoints;
 
         // 全勤积分,全勤则双倍奖励
         int fullAttendancePoints = 0;
@@ -78,83 +91,14 @@ public class SettleManagerImpl implements ISettleManager {
         }
 
         // 打卡任务使用的拓展信息
-        List<PiTaskExt> punchInMultiExtList = piTaskExtList.stream()
+        List<TaskExt> punchInMultiExtList = piTaskExtList.stream()
             .filter(v -> PunchInDimensionEnum.MULTI_DAY.equals(v.getDimension())).collect(Collectors.toList());
         // 连续完成额外积分
-        int taskPoints = calculateConsecutivePointsInTask(piTask, punchInMultiExtList, piStatus);
+        int taskPoints = calculateContinuePoints(piTask, punchInMultiExtList, piStatus);
 
         return basicPoints + fullAttendancePoints + holidayPoints + taskPoints;
     }
 
-    /**
-     * 计算额外积分
-     * 
-     * @param piTask
-     * @param piTaskExtList
-     * @return
-     */
-    private int calculateExtraPointsInTask(PiTask piTask, List<PiTaskExt> piTaskExtList,
-                                           PiTaskHistory piTaskHistory, boolean holidayFlag) {
-        // 单次打卡或者没有启用额外积分计算则跳过
-        if (PunchInExtraMethodEnum.NONE.equals(piTask.getExtraMethod())
-            || PunchInMethodEnum.SINGLE.equals(piTask.getPunchInMethod())) {
-            return 0;
-        }
-
-        // 计算超出部分,获取额外次数
-        int extraCount = getExtraCountInTask(piTask, piTaskHistory, holidayFlag);
-
-        // 如果等于0则没有超出部分,不用计算
-        if (extraCount == 0) {
-            return 0;
-        }
-
-        // 固定计算
-        if (PunchInExtraMethodEnum.FIXED.equals(piTask.getExtraMethod())) {
-            Integer extraPoints = Optional.ofNullable(piTask.getExtraPoints()).orElse(0);
-            return extraCount * extraPoints;
-        }
-
-        // 区间计算
-        if (PunchInExtraMethodEnum.INTERVAL.equals(piTask.getExtraMethod())
-            && !CollectionUtils.isEmpty(piTaskExtList)) {
-            // 任务积分
-            int extraPoints = 0;
-            // 第二轮标志
-            boolean secondRound = false;
-            // 上一轮的值
-            int prevInitialValue = 0;
-            // 拓展信息 根据InitialValue倒序排列
-            piTaskExtList.sort(Comparator.comparing(PiTaskExt::getInitialValue).reversed());
-            // 使用区间计算的方式
-            for (PiTaskExt piTaskExt : piTaskExtList) {
-                // 比较结果
-                int compareValue = Integer.compare(extraCount, piTaskExt.getInitialValue());
-                // 如果连续日期小于initialValue,则跳过
-                if (compareValue == -1) {
-                    continue;
-                }
-                // 额外奖励数
-                int tempExtraCount = 0;
-                // 如果连续日期大于等于initialValue,则进行第一次计算,并把第二轮标志位设置为true,第二轮/后续轮只需要用上一轮的值进行计算
-                if (secondRound) {
-                    tempExtraCount = prevInitialValue - piTaskExt.getInitialValue();
-                } else if (compareValue >= 0) {
-                    tempExtraCount = extraCount - piTaskExt.getInitialValue() + 1;
-                    secondRound = true;
-                }
-                // 计算 任务积分
-                extraPoints += piTaskExt.getExtraPoints() * tempExtraCount;
-                // 记录本轮的initialValue
-                prevInitialValue = piTaskExt.getInitialValue();
-            }
-
-            return extraPoints;
-        }
-
-        return 0;
-    }
-
     /**
      * 获取额外次数
      * 
@@ -163,19 +107,18 @@ public class SettleManagerImpl implements ISettleManager {
      * @param holidayFlag 是否是法定节假日 true-是,false-不是
      * @return
      */
-    private int getExtraCountInTask(PiTask piTask, PiTaskHistory piTaskHistory,
-                                    boolean holidayFlag) {
+    private int getExtraCountInTask(PiTask piTask, PiTaskHistory piTaskHistory, boolean holidayFlag) {
         int extraCount = 0;
         // 计数打卡
         if (PunchInMethodEnum.COUNT.equals(piTask.getPunchInMethod())) {
-            extraCount = piTaskHistory.getCountTrack()
-                - (holidayFlag ? piTask.getHolidayCountTrack() : piTask.getCountTrack());
+            extraCount =
+                piTaskHistory.getCountTrack() - (holidayFlag ? piTask.getHolidayCountTrack() : piTask.getCountTrack());
         }
         // 计时打卡
         if (PunchInMethodEnum.TIMING.equals(piTask.getPunchInMethod())) {
             // 超出的时间按照时间间隔转换成次数
-            long timeTrack = piTaskHistory.getTimeTrack().until(
-                (holidayFlag ? piTask.getHolidayTimeTrack() : piTask.getTimeTrack()), ChronoUnit.MINUTES);
+            long timeTrack = piTaskHistory.getTimeTrack()
+                .until((holidayFlag ? piTask.getHolidayTimeTrack() : piTask.getTimeTrack()), ChronoUnit.MINUTES);
             extraCount = BigDecimal.valueOf(timeTrack)
                 .divide(BigDecimal.valueOf(piTask.getExtraTimeStep()), 0, RoundingMode.FLOOR).intValue();
         }
@@ -212,61 +155,9 @@ public class SettleManagerImpl implements ISettleManager {
         return undoneCount <= piTask.getFullAttendanceFaultToleranceCnt();
     }
 
-    /**
-     * 计算连续积分
-     * 
-     * @param piTask 打卡任务
-     * @param piTaskExtList 打卡任务拓展信息
-     * @param piStatus 打卡状态
-     * @return
-     */
-    private int calculateConsecutivePointsInTask(PiTask piTask, List<PiTaskExt> piTaskExtList,
-                                                 PiStatus piStatus) {
-        // 没有启用任务积分计算、或是连续打卡状态为中断、或是没有拓展信息 则不进行计算
-        if (CommonEnableStatusEnum.DISABLED.equals(piTask.getTaskPointsStatus())
-            || ContinueStatusEnum.INTERRUPTED.equals(piStatus.getTaskContinueStatus())
-            || CollectionUtils.isEmpty(piTaskExtList)) {
-            return 0;
-        }
-
-        // 任务积分
-        int taskPoints = 0;
-        // 第二轮标志
-        boolean secondRound = false;
-        // 上一轮的值
-        int prevInitialValue = 0;
-        // 拓展信息 根据InitialValue倒序排列
-        piTaskExtList.sort(Comparator.comparing(PiTaskExt::getInitialValue).reversed());
-        // 使用区间计算的方式
-        for (PiTaskExt piTaskExt : piTaskExtList) {
-            // 比较结果
-            int compareValue = piStatus.getTaskContinueDay().compareTo(piTaskExt.getInitialValue());
-            // 如果连续日期小于initialValue,则跳过
-            if (compareValue == -1) {
-                continue;
-            }
-            // 额外奖励数
-            int tempExtraCount = 0;
-            // 如果连续日期大于等于initialValue,则进行第一次计算,并把第二轮标志位设置为true,第二轮/后续轮只需要用上一轮的值进行计算
-            if (secondRound) {
-                tempExtraCount = prevInitialValue - piTaskExt.getInitialValue();
-            } else if (compareValue >= 0) {
-                tempExtraCount = piStatus.getTaskContinueDay() - piTaskExt.getInitialValue() + 1;
-                secondRound = true;
-            }
-            // 计算 任务积分
-            taskPoints += piTaskExt.getExtraPoints() * tempExtraCount;
-            // 记录本轮的initialValue
-            prevInitialValue = piTaskExt.getInitialValue();
-        }
-
-        return taskPoints;
-    }
-
     @Override
-    public int calculatePointsInMultiTask(PiMultiTask piMultiTask,
-                                          List<PiMultiTaskExt> piMultiTaskExtList, PiMultiTaskHistory piMultiTaskHistory,
-                                          PiStatus piStatus) {
+    public int calculatePointsInMultiTask(PiMultiTask piMultiTask, List<PiMultiTaskExt> piMultiTaskExtList,
+        PiMultiTaskHistory piMultiTaskHistory, PiStatus piStatus) {
         // 未完成打卡或没有启用多任务积分计算,积分为0
         if (PunchInResultEnum.UNDONE.equals(piMultiTaskHistory.getPunchInResult())
             || CommonEnableStatusEnum.DISABLED.equals(piMultiTask.getTaskPointsStatus())) {
@@ -278,106 +169,89 @@ public class SettleManagerImpl implements ISettleManager {
         int basicPoints = piMultiTask.getPoints();
 
         // 额外积分
-        List<PiMultiTaskExt> punchInTaskOneExtList = piMultiTaskExtList.stream()
-                .filter(v -> PunchInDimensionEnum.ONE_DAY.equals(v.getDimension())).collect(Collectors.toList());
-        int extraPoints = calculateExtraPointsInMultiTask(piMultiTask, punchInTaskOneExtList, piMultiTaskHistory);
+        List<TaskExt> punchInTaskOneExtList = piMultiTaskExtList.stream()
+            .filter(v -> PunchInDimensionEnum.ONE_DAY.equals(v.getDimension())).collect(Collectors.toList());
+        // 额外次数
+        int extractCount = piMultiTaskHistory.getPunchInDoneCount() - piMultiTask.getPunchInDoneCount();
+        int extraPoints = calculateExtraPoints(piMultiTask.getExtraMethod(), extractCount, piMultiTask.getExtraPoints(), punchInTaskOneExtList);
 
         // 连续完成额外积分
-        List<PiMultiTaskExt> punchInTaskMultiExtList = piMultiTaskExtList.stream()
+        List<TaskExt> punchInTaskMultiExtList = piMultiTaskExtList.stream()
             .filter(v -> PunchInDimensionEnum.MULTI_DAY.equals(v.getDimension())).collect(Collectors.toList());
-        int taskPoints =
-            calculateConsecutivePointsInMultiTask(piMultiTask, punchInTaskMultiExtList, piStatus);
+        int taskPoints = calculateContinuePoints(piMultiTask, punchInTaskMultiExtList, piStatus);
 
         return basicPoints + extraPoints + taskPoints;
     }
 
+
     /**
-     * 计算额外积分(多任务)
-     * 
-     * @param piMultiTask 多任务打卡信息
-     * @param piMultiTaskExtList 多任务打卡拓展信息
-     * @param piMultiTaskHistory 多任务打卡历史信息
+     * 计算额外积分
+     * @param extraMethod 计算方式
+     * @param extraCount 额外超出次数
+     * @param fixedPoints 固定积分
+     * @param taskExtList 拓展积分信息
      * @return
      */
+    private int calculateExtraPoints(PunchInExtraMethodEnum extraMethod, Integer extraCount, Integer fixedPoints,  List<TaskExt> taskExtList) {
 
-    private int calculateExtraPointsInMultiTask(PiMultiTask piMultiTask,
-                                                List<PiMultiTaskExt> piMultiTaskExtList, PiMultiTaskHistory piMultiTaskHistory) {
-        // 额外次数
-        int extractCount = piMultiTaskHistory.getPunchInDoneCount() - piMultiTask.getPunchInDoneCount();
+        // 超出次数 如果等于0则没有超出部分,不用计算
+        extraCount = Optional.ofNullable(extraCount).orElse(0);
+        if (extraCount == 0) {
+            return 0;
+        }
 
         // 固定计算
-        if (PunchInExtraMethodEnum.FIXED.equals(piMultiTask.getExtraMethod())) {
-            return extractCount * piMultiTask.getExtraPoints();
+        if (PunchInExtraMethodEnum.FIXED.equals(extraMethod)) {
+            return extraCount * fixedPoints;
         }
 
         // 区间计算
-        if (PunchInExtraMethodEnum.INTERVAL.equals(piMultiTask.getExtraMethod())
-            && !CollectionUtils.isEmpty(piMultiTaskExtList)) {
-            // 额外积分
-            int extraPoints = 0;
-            // 第二轮标志
-            boolean secondRound = false;
-            // 上一轮的值
-            int prevInitialValue = 0;
-            // punchInMultiTaskExtList 根据InitialValue倒序排列
-            piMultiTaskExtList.sort(Comparator.comparing(PiMultiTaskExt::getInitialValue).reversed());
-
-            for (PiMultiTaskExt punchInTaskExt : piMultiTaskExtList) {
-                // 比较结果
-                int compareValue = Integer.compare(extractCount, punchInTaskExt.getInitialValue());
-                // 如果连续日期小于initialValue,则跳过
-                if (compareValue == -1) {
-                    continue;
-                }
-                // 额外奖励数
-                int tempExtraCount = 0;
-                // 如果连续日期大于等于initialValue,则进行第一次计算,并把第二轮标志位设置为true,第二轮/后续轮只需要用上一轮的值进行计算
-                if (secondRound) {
-                    tempExtraCount = prevInitialValue - punchInTaskExt.getInitialValue();
-                } else if (compareValue >= 0) {
-                    tempExtraCount = extractCount - punchInTaskExt.getInitialValue() + 1;
-                    secondRound = true;
-                }
-                // 计算机分
-                extraPoints += punchInTaskExt.getExtraPoints() * tempExtraCount;
-                // 记录本轮的initialValue
-                prevInitialValue = punchInTaskExt.getInitialValue();
-            }
+        if (PunchInExtraMethodEnum.INTERVAL.equals(extraMethod)
+                && !CollectionUtils.isEmpty(taskExtList)) {
+            return calculateIntervalPoints(extraCount, taskExtList);
         }
 
         return 0;
     }
 
     /**
-     * 计算多任务连续打卡积分
-     * 
-     * @param piMultiTask 多任务打卡信息
-     * @param piMultiTaskExtList 多任务打卡拓展信息
+     * 计算连续打卡积分(打卡任务/打卡多任务)
+     * @param continueTask 连续任务
+     * @param taskExtList 任务拓展信息
      * @param piStatus 状态信息
      * @return
      */
-
-    private int calculateConsecutivePointsInMultiTask(PiMultiTask piMultiTask,
-                                                      List<PiMultiTaskExt> piMultiTaskExtList, PiStatus piStatus) {
+    private int calculateContinuePoints(ContinueTask continueTask, List<TaskExt> taskExtList,
+                                        PiStatus piStatus) {
         // 没有启用多任务积分计算、或是连续打卡状态为中断、或是没有拓展信息 则不进行计算
-        if (CommonEnableStatusEnum.DISABLED.equals(piMultiTask.getTaskPointsStatus())
+        if (CommonEnableStatusEnum.DISABLED.equals(continueTask.getTaskPointsStatus())
             || ContinueStatusEnum.INTERRUPTED.equals(piStatus.getTaskContinueStatus())
-            || CollectionUtils.isEmpty(piMultiTaskExtList)) {
+            || CollectionUtils.isEmpty(taskExtList)) {
             return 0;
         }
 
+        return calculateIntervalPoints(piStatus.getTaskContinueDay(), taskExtList);
+    }
+
+    /**
+     * 计算区间积分
+     * @param extraCount 额外次数
+     * @param taskExtList 任务拓展信息
+     * @return
+     */
+    private int calculateIntervalPoints(Integer extraCount, List<TaskExt> taskExtList) {
         // 积分
         int points = 0;
         // 第二轮标志
         boolean secondRound = false;
         // 上一轮的值
         int prevInitialValue = 0;
-        // punchInMultiTaskExtList 根据InitialValue倒序排列
-        piMultiTaskExtList.sort(Comparator.comparing(PiMultiTaskExt::getInitialValue).reversed());
+        // 拓展信息 根据InitialValue倒序排列
+        taskExtList.sort(Comparator.comparing(TaskExt::getInitialValue).reversed());
 
-        for (PiMultiTaskExt punchInTaskExt : piMultiTaskExtList) {
+        for (TaskExt taskExt : taskExtList) {
             // 比较结果
-            int compareValue = piStatus.getTaskContinueDay().compareTo(punchInTaskExt.getInitialValue());
+            int compareValue = Integer.compare(extraCount, taskExt.getInitialValue());
             // 如果连续日期小于initialValue,则跳过
             if (compareValue == -1) {
                 continue;
@@ -386,15 +260,15 @@ public class SettleManagerImpl implements ISettleManager {
             int tempExtraCount = 0;
             // 如果连续日期大于等于initialValue,则进行第一次计算,并把第二轮标志位设置为true,第二轮/后续轮只需要用上一轮的值进行计算
             if (secondRound) {
-                tempExtraCount = prevInitialValue - punchInTaskExt.getInitialValue();
+                tempExtraCount = prevInitialValue - taskExt.getInitialValue();
             } else if (compareValue >= 0) {
-                tempExtraCount = piStatus.getTaskContinueDay() - punchInTaskExt.getInitialValue() + 1;
+                tempExtraCount = extraCount - taskExt.getInitialValue() + 1;
                 secondRound = true;
             }
             // 计算积分
-            points += punchInTaskExt.getExtraPoints() * tempExtraCount;
+            points += taskExt.getExtraPoints() * tempExtraCount;
             // 记录本轮的initialValue
-            prevInitialValue = punchInTaskExt.getInitialValue();
+            prevInitialValue = taskExt.getInitialValue();
         }
 
         return points;

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

@@ -42,7 +42,7 @@ public class SysCalendarServiceImpl implements ISysCalendarService {
 
     @Override
     public SysCalendar getByGregorianDate(String gregorianDate) {
-        if (StringUtils.hasText(gregorianDate)) {
+        if (!StringUtils.hasText(gregorianDate)) {
             return null;
         }
 

+ 3 - 0
src/main/java/com/punchsettle/server/utiis/DateUtils.java

@@ -30,6 +30,9 @@ public class DateUtils {
      */
     public static final String YYYY_MM_DD_FORMAT = "yyyy-MM-dd";
 
+    /**
+     * 日期格式(yyyy-MM-dd)的格式化器
+     */
     public static final DateTimeFormatter YYYY_MM_DD_FORMATTER = DateTimeFormatter.ofPattern(YYYY_MM_DD_FORMAT);
 
     /**

+ 49 - 0
src/test/java/com/punchsettle/server/service/manager/impl/CalendarManagerImplTest.java

@@ -0,0 +1,49 @@
+package com.punchsettle.server.service.manager.impl;
+
+import com.punchsettle.server.service.manager.ICalendarManager;
+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 org.springframework.test.context.junit4.SpringRunner;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * @author tyuio
+ * @version 1.0.0
+ * @date 2025/4/23 11:32
+ * @description TODO
+ */
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@ActiveProfiles(value={"dev", "test"})
+class CalendarManagerImplTest {
+
+    @Autowired
+    private ICalendarManager calendarManager;
+
+    @Test
+    void judgeHoliday() {
+        boolean b1 = calendarManager.judgeHoliday("2025-04-20");
+        Assertions.assertTrue(b1);
+
+        boolean b2 = calendarManager.judgeHoliday("2025-05-01");
+        Assertions.assertTrue(b2);
+
+        boolean b3 = calendarManager.judgeHoliday("2025-04-23");
+        Assertions.assertFalse(b3);
+    }
+
+    @Test
+    void judgeWorkday() {
+        boolean b1 = calendarManager.judgeWorkday("2025-04-23");
+        Assertions.assertTrue(b1);
+
+        boolean b2 = calendarManager.judgeWorkday("2025-04-27");
+        Assertions.assertTrue(b2);
+
+        boolean b3 = calendarManager.judgeWorkday("2025-05-01");
+        Assertions.assertFalse(b3);
+    }
+}

+ 234 - 0
src/test/java/com/punchsettle/server/service/manager/impl/PunchInManagerImplTest.java

@@ -0,0 +1,234 @@
+package com.punchsettle.server.service.manager.impl;
+
+import com.punchsettle.server.atomic.entity.PiMultiTask;
+import com.punchsettle.server.atomic.entity.PiTask;
+import com.punchsettle.server.atomic.entity.PiTaskHistory;
+import com.punchsettle.server.common.constant.CommonEnableStatusEnum;
+import com.punchsettle.server.constant.CompareRuleEnum;
+import com.punchsettle.server.constant.ContinueStageEnum;
+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
+ * @version 1.0.0
+ * @date 2025/4/23 14:15
+ * @description TODO
+ */
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@ActiveProfiles(value={"dev", "test"})
+class PunchInManagerImplTest {
+
+    @Autowired
+    private IPunchInManager punchInManager;
+
+    @Test
+    void judgeRepeat() {
+        PiTask piTask1 = new PiTask();
+        piTask1.setRepeatCategory(RepeatCategoryEnum.EVERYDAY);
+        Assertions.assertTrue(punchInManager.judgeRepeat(piTask1, "2025-04-23"));
+
+        PiTask piTask2 = new PiTask();
+        piTask2.setRepeatCategory(RepeatCategoryEnum.WORKDAY);
+        Assertions.assertTrue(punchInManager.judgeRepeat(piTask2, "2025-04-23"));
+
+        PiTask piTask3 = new PiTask();
+        piTask3.setRepeatCategory(RepeatCategoryEnum.WORKDAY);
+        Assertions.assertFalse(punchInManager.judgeRepeat(piTask3, "2025-04-26"));
+
+        PiTask piTask4 = new PiTask();
+        piTask4.setRepeatCategory(RepeatCategoryEnum.HOLIDAY);
+        Assertions.assertFalse(punchInManager.judgeRepeat(piTask4, "2025-04-23"));
+
+        PiTask piTask5 = new PiTask();
+        piTask5.setRepeatCategory(RepeatCategoryEnum.HOLIDAY);
+        Assertions.assertTrue(punchInManager.judgeRepeat(piTask5, "2025-04-26"));
+    }
+
+    @Test
+    void judgePunchInResultInTask() {
+        PiTask piTask1 = new PiTask();
+        PunchInResultEnum punchInResult1 = punchInManager.judgePunchInResultInTask(piTask1, null);
+        Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult1);
+
+        PiTask piTask2 = new PiTask();
+        piTask2.setPunchInMethod(PunchInMethodEnum.SINGLE);
+        PiTaskHistory piTaskHistory2 = new PiTaskHistory();
+        PunchInResultEnum punchInResult2 = punchInManager.judgePunchInResultInTask(piTask2, piTaskHistory2);
+        Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult2);
+
+        PiTask piTask3 = new PiTask();
+        piTask3.setPunchInMethod(PunchInMethodEnum.SINGLE);
+        PiTaskHistory piTaskHistory3 = new PiTaskHistory();
+        piTaskHistory3.setCountTrack(2);
+        PunchInResultEnum punchInResult3 = punchInManager.judgePunchInResultInTask(piTask3, piTaskHistory3);
+        Assertions.assertEquals(PunchInResultEnum.DONE, punchInResult3);
+
+        PiTask piTask4 = new PiTask();
+        piTask4.setPunchInMethod(PunchInMethodEnum.COUNT);
+        piTask4.setCompareRule(CompareRuleEnum.GTE);
+        piTask4.setCountTrack(2);
+        PiTaskHistory piTaskHistory4 = new PiTaskHistory();
+        piTaskHistory4.setCountTrack(2);
+        PunchInResultEnum punchInResult4 = punchInManager.judgePunchInResultInTask(piTask4, piTaskHistory4);
+        Assertions.assertEquals(PunchInResultEnum.DONE, punchInResult4);
+
+        PiTask piTask5 = new PiTask();
+        piTask5.setPunchInMethod(PunchInMethodEnum.COUNT);
+        piTask5.setCompareRule(CompareRuleEnum.GTE);
+        piTask5.setCountTrack(2);
+        PiTaskHistory piTaskHistory5 = new PiTaskHistory();
+        piTaskHistory5.setCountTrack(1);
+        PunchInResultEnum punchInResult5 = punchInManager.judgePunchInResultInTask(piTask5, piTaskHistory5);
+        Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult5);
+
+        PiTask piTask6 = new PiTask();
+        piTask6.setPunchInMethod(PunchInMethodEnum.COUNT);
+        piTask6.setCompareRule(CompareRuleEnum.LTE);
+        piTask6.setCountTrack(2);
+        PiTaskHistory piTaskHistory6 = new PiTaskHistory();
+        piTaskHistory6.setCountTrack(2);
+        PunchInResultEnum punchInResult6 = punchInManager.judgePunchInResultInTask(piTask6, piTaskHistory6);
+        Assertions.assertEquals(PunchInResultEnum.DONE, punchInResult6);
+
+        PiTask piTask7 = new PiTask();
+        piTask7.setPunchInMethod(PunchInMethodEnum.COUNT);
+        piTask7.setCompareRule(CompareRuleEnum.LTE);
+        piTask7.setCountTrack(2);
+        PiTaskHistory piTaskHistory7 = new PiTaskHistory();
+        piTaskHistory7.setCountTrack(3);
+        PunchInResultEnum punchInResult7 = punchInManager.judgePunchInResultInTask(piTask7, piTaskHistory7);
+        Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult7);
+
+        PiTask piTask8 = new PiTask();
+        piTask8.setPunchInMethod(PunchInMethodEnum.TIMING);
+        piTask8.setCompareRule(CompareRuleEnum.GTE);
+        piTask8.setTimeTrack(LocalTime.parse("06:00:00.000"));
+        PiTaskHistory piTaskHistory8 = new PiTaskHistory();
+        piTaskHistory8.setTimeTrack(LocalTime.parse("06:00:00.000"));
+        PunchInResultEnum punchInResult8 = punchInManager.judgePunchInResultInTask(piTask8, piTaskHistory8);
+        Assertions.assertEquals(PunchInResultEnum.DONE, punchInResult8);
+
+        PiTask piTask9 = new PiTask();
+        piTask9.setPunchInMethod(PunchInMethodEnum.TIMING);
+        piTask9.setCompareRule(CompareRuleEnum.GTE);
+        piTask9.setTimeTrack(LocalTime.parse("06:00:00.000"));
+        PiTaskHistory piTaskHistory9 = new PiTaskHistory();
+        piTaskHistory9.setTimeTrack(LocalTime.parse("05:00:00.000"));
+        PunchInResultEnum punchInResult9 = punchInManager.judgePunchInResultInTask(piTask9, piTaskHistory9);
+        Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult9);
+
+        PiTask piTask10 = new PiTask();
+        piTask10.setPunchInMethod(PunchInMethodEnum.TIMING);
+        piTask10.setCompareRule(CompareRuleEnum.LTE);
+        piTask10.setTimeTrack(LocalTime.parse("06:00:00.000"));
+        PiTaskHistory piTaskHistory10 = new PiTaskHistory();
+        piTaskHistory10.setTimeTrack(LocalTime.parse("06:00:00.000"));
+        PunchInResultEnum punchInResult10 = punchInManager.judgePunchInResultInTask(piTask10, piTaskHistory10);
+        Assertions.assertEquals(PunchInResultEnum.DONE, punchInResult10);
+
+        PiTask piTask11 = new PiTask();
+        piTask11.setPunchInMethod(PunchInMethodEnum.TIMING);
+        piTask11.setCompareRule(CompareRuleEnum.LTE);
+        piTask11.setTimeTrack(LocalTime.parse("06:00:00.000"));
+        PiTaskHistory piTaskHistory11 = new PiTaskHistory();
+        piTaskHistory11.setTimeTrack(LocalTime.parse("07:00:00.000"));
+        PunchInResultEnum punchInResult11 = punchInManager.judgePunchInResultInTask(piTask11, piTaskHistory11);
+        Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult11);
+
+        PiTask piTask12 = new PiTask();
+        piTask12.setHolidayStatus(CommonEnableStatusEnum.ENABLED);
+        piTask12.setPunchInMethod(PunchInMethodEnum.TIMING);
+        piTask12.setCompareRule(CompareRuleEnum.GTE);
+        piTask12.setTimeTrack(LocalTime.parse("06:00:00.000"));
+        piTask12.setHolidayTimeTrack(LocalTime.parse("04:00:00.000"));
+        PiTaskHistory piTaskHistory12 = new PiTaskHistory();
+        piTaskHistory12.setPunchInDate("2025-04-26");
+        piTaskHistory12.setTimeTrack(LocalTime.parse("04:00:00.000"));
+        PunchInResultEnum punchInResult12 = punchInManager.judgePunchInResultInTask(piTask12, piTaskHistory12);
+        Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult12);
+
+    }
+
+    @Test
+    void judgePunchInResultInMultiTask() {
+        PiMultiTask piMultiTask1 = new PiMultiTask();
+        piMultiTask1.setTaskPointsStatus(CommonEnableStatusEnum.ENABLED);
+        List<PiTaskHistory> piTaskHistoryList1 = new ArrayList<>();
+        PunchInResultEnum punchInResult1 = punchInManager.judgePunchInResultInMultiTask(piMultiTask1, piTaskHistoryList1);
+        Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult1);
+
+        PiMultiTask piMultiTask11 = new PiMultiTask();
+        piMultiTask11.setTaskPointsStatus(CommonEnableStatusEnum.DISABLED);
+        List<PiTaskHistory> piTaskHistoryList11 = new ArrayList<>();
+        PunchInResultEnum punchInResult11 = punchInManager.judgePunchInResultInMultiTask(piMultiTask11, piTaskHistoryList11);
+        Assertions.assertEquals(PunchInResultEnum.UNDONE, punchInResult11);
+
+        PiTaskHistory piTaskHistory1 = new PiTaskHistory();
+        piTaskHistory1.setPunchInResult(PunchInResultEnum.DONE);
+        PiTaskHistory piTaskHistory2 = new PiTaskHistory();
+        piTaskHistory2.setPunchInResult(PunchInResultEnum.DONE);
+        PiTaskHistory piTaskHistory3 = new PiTaskHistory();
+        piTaskHistory3.setPunchInResult(PunchInResultEnum.DONE);
+        PiTaskHistory piTaskHistory4 = new PiTaskHistory();
+        piTaskHistory4.setPunchInResult(PunchInResultEnum.UNDONE);
+
+        PiMultiTask piMultiTask2 = new PiMultiTask();
+        piMultiTask2.setTaskPointsStatus(CommonEnableStatusEnum.ENABLED);
+        piMultiTask2.setPunchInDoneCount(3);
+        List<PiTaskHistory> piTaskHistoryList2 = Arrays.asList(piTaskHistory1, piTaskHistory2, piTaskHistory3, piTaskHistory4);
+        PunchInResultEnum punchInResult2 = punchInManager.judgePunchInResultInMultiTask(piMultiTask2, piTaskHistoryList2);
+        Assertions.assertEquals(PunchInResultEnum.DONE, punchInResult2);
+
+        PiMultiTask piMultiTask3 = new PiMultiTask();
+        piMultiTask3.setTaskPointsStatus(CommonEnableStatusEnum.ENABLED);
+        piMultiTask3.setPunchInDoneCount(4);
+        List<PiTaskHistory> piTaskHistoryList3 = Arrays.asList(piTaskHistory1, piTaskHistory2, piTaskHistory3, piTaskHistory4);
+        PunchInResultEnum punchInResult3 = punchInManager.judgePunchInResultInMultiTask(piMultiTask3, piTaskHistoryList3);
+        Assertions.assertEquals(PunchInResultEnum.DONE, punchInResult3);
+    }
+
+    @Test
+    void getPunchInTotalCountInRange() {
+        LocalDate today = LocalDate.parse("2025-04-23");
+        LocalDate firstDayOfWeek = LocalDate.parse("2025-04-21");
+        LocalDate lastDayOfWeek = LocalDate.parse("2025-04-27");
+
+        int punchInTotalCount1 = punchInManager.getPunchInTotalCountInRange(RepeatCategoryEnum.EVERYDAY, null, firstDayOfWeek, lastDayOfWeek);
+        Assertions.assertEquals(7, punchInTotalCount1);
+
+        int punchInTotalCount2 = punchInManager.getPunchInTotalCountInRange(RepeatCategoryEnum.CUSTOM, "1,2,7,6", firstDayOfWeek, lastDayOfWeek);
+        Assertions.assertEquals(4, punchInTotalCount2);
+
+        int punchInTotalCount3 = punchInManager.getPunchInTotalCountInRange(RepeatCategoryEnum.WORKDAY, null, firstDayOfWeek, lastDayOfWeek);
+        Assertions.assertEquals(6, punchInTotalCount3);
+
+        int punchInTotalCount4 = punchInManager.getPunchInTotalCountInRange(RepeatCategoryEnum.HOLIDAY, null, firstDayOfWeek, lastDayOfWeek);
+        Assertions.assertEquals(1, punchInTotalCount4);
+    }
+
+    @Test
+    void judgeContinueStage() {
+        PiTask piTask1 = new PiTask();
+        piTask1.setContinueStatus(CommonEnableStatusEnum.DISABLED);
+        ContinueStageEnum continueStage1 = punchInManager.judgeContinueStage(piTask1, null, null, null);
+        Assertions.assertEquals(ContinueStageEnum.NONE, continueStage1);
+
+        PiTask piTask2 = new PiTask();
+        piTask2.setContinueStatus(CommonEnableStatusEnum.ENABLED);
+        piTask2.setGraceDay(7);
+    }
+}

+ 117 - 0
src/test/java/com/punchsettle/server/utiis/DateUtilsTest.java

@@ -0,0 +1,117 @@
+package com.punchsettle.server.utiis;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * @author tyuio
+ * @version 1.0.0
+ * @date 2025/4/23 10:40
+ * @description 日期工具类测试
+ */
+class DateUtilsTest {
+
+    /**
+     * 今天
+     */
+    private final LocalDate today = LocalDate.parse("2025-04-23");
+
+    /**
+     * 本周周一
+     */
+    private LocalDate firstDayOfWeek = LocalDate.parse("2025-04-21");
+
+    /**
+     * 本周周日
+     */
+    private LocalDate lastDayOfWeek = LocalDate.parse("2025-04-27");
+
+    /**
+     * 本月第一天
+     */
+    private LocalDate firstDayOfMonth = LocalDate.parse("2025-04-01");
+
+    /**
+     * 本月最后一天
+     */
+    private LocalDate lastDayOfMonth = LocalDate.parse("2025-04-30");
+
+    @Test
+    void getFirstDayOfWeek() {
+        LocalDate actualFirstDayOfMonth = DateUtils.getFirstDayOfWeek(today);
+        Assertions.assertEquals(firstDayOfWeek, actualFirstDayOfMonth);
+    }
+
+    @Test
+    void getFirstDayOfWeekOnSameDay() {
+        LocalDate actualFirstDayOfMonth = DateUtils.getFirstDayOfWeek(firstDayOfWeek);
+        Assertions.assertEquals(firstDayOfWeek, actualFirstDayOfMonth);
+    }
+
+    @Test
+    void getLastDayOfWeek() {
+        LocalDate actualLastDayOfMonth = DateUtils.getLastDayOfWeek(today);
+        Assertions.assertEquals(lastDayOfWeek, actualLastDayOfMonth);
+    }
+
+    @Test
+    void getLastDayOfWeekOnSameDay() {
+        LocalDate actualLastDayOfMonth = DateUtils.getLastDayOfWeek(lastDayOfWeek);
+        Assertions.assertEquals(lastDayOfWeek, actualLastDayOfMonth);
+    }
+
+    @Test
+    void getFirstDayOfMonth() {
+        LocalDate actualFirstDayOfMonth = DateUtils.getFirstDayOfMonth(today);
+        Assertions.assertEquals(firstDayOfMonth, actualFirstDayOfMonth);
+    }
+
+    @Test
+    void getFirstDayOfMonthOnSameDay() {
+        LocalDate actualFirstDayOfMonth = DateUtils.getFirstDayOfMonth(firstDayOfMonth);
+        Assertions.assertEquals(firstDayOfMonth, actualFirstDayOfMonth);
+    }
+
+    @Test
+    void getLastDayOfMonth() {
+        LocalDate actualFirstDayOfMonth = DateUtils.getLastDayOfMonth(today);
+        Assertions.assertEquals(lastDayOfMonth, actualFirstDayOfMonth);
+    }
+
+    @Test
+    void getLastDayOfMonthOnSameDay() {
+        LocalDate actualFirstDayOfMonth = DateUtils.getLastDayOfMonth(lastDayOfMonth);
+        Assertions.assertEquals(lastDayOfMonth, actualFirstDayOfMonth);
+    }
+
+    @Test
+    void getDateRange() {
+        List<LocalDate> actualDateRangeInWeek = DateUtils.getDateRange(firstDayOfWeek, lastDayOfWeek);
+        List<LocalDate> expectedDateRangeInWeek = List.of(firstDayOfWeek, LocalDate.parse("2025-04-22"), LocalDate.parse("2025-04-23"), LocalDate.parse("2025-04-24"), LocalDate.parse("2025-04-25"), LocalDate.parse("2025-04-26"), lastDayOfWeek);
+        Assertions.assertEquals(expectedDateRangeInWeek, actualDateRangeInWeek);
+    }
+
+    @Test
+    void getYearWeek() {
+        String actualYearWeek1 = DateUtils.getYearWeek(LocalDate.parse("2025-01-01"));
+        Assertions.assertEquals("2025-W01", actualYearWeek1);
+
+        String actualYearWeek2 = DateUtils.getYearWeek(LocalDate.parse("2025-04-23"));
+        Assertions.assertEquals("2025-W17", actualYearWeek2);
+
+        String actualYearWeek3 = DateUtils.getYearWeek(LocalDate.parse("2025-12-31"));
+        Assertions.assertEquals("2026-W01", actualYearWeek3);
+    }
+
+    @Test
+    void getYearMonth() {
+        String yearMonth = DateUtils.getYearMonth(today);
+        Assertions.assertEquals("2025-04", yearMonth);
+    }
+}

+ 20 - 0
src/test/resources/application-test.yaml

@@ -0,0 +1,20 @@
+spring:
+  datasource:
+    username: sa
+    password:
+    url: jdbc:h2:mem:punch_settle;MODE=MYSQL
+    driver-class-name: org.h2.Driver
+  sql:
+    init:
+      schema-locations:
+        - 'classpath:db/schema.sql'
+      data-locations:
+        - 'classpath:db/data.sql'
+
+logging:
+  level:
+    com.punchsettle.server: debug
+
+jasypt:
+  encryptor:
+    password: 9sVPl8ZLyOGR88bgyUxA

+ 365 - 0
src/test/resources/db/data.sql

@@ -0,0 +1,365 @@
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(1, '2025-01-01', '2024-12-02', 3, 'HOLIDAY', '元旦节', 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(2, '2025-01-02', '2024-12-03', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(3, '2025-01-03', '2024-12-04', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(4, '2025-01-04', '2024-12-05', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(5, '2025-01-05', '2024-12-06', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(6, '2025-01-06', '2024-12-07', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(7, '2025-01-07', '2024-12-08', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(8, '2025-01-08', '2024-12-09', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(9, '2025-01-09', '2024-12-10', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(10, '2025-01-10', '2024-12-11', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(11, '2025-01-11', '2024-12-12', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(12, '2025-01-12', '2024-12-13', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(13, '2025-01-13', '2024-12-14', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(14, '2025-01-14', '2024-12-15', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(15, '2025-01-15', '2024-12-16', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(16, '2025-01-16', '2024-12-17', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(17, '2025-01-17', '2024-12-18', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(18, '2025-01-18', '2024-12-19', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(19, '2025-01-19', '2024-12-20', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(20, '2025-01-20', '2024-12-21', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(21, '2025-01-21', '2024-12-22', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(22, '2025-01-22', '2024-12-23', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(23, '2025-01-23', '2024-12-24', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(24, '2025-01-24', '2024-12-25', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(25, '2025-01-25', '2024-12-26', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(26, '2025-01-26', '2024-12-27', 7, 'WORKDAY', NULL, 'Y', '春节前补班', 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(27, '2025-01-27', '2024-12-28', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(28, '2025-01-28', '2024-12-29', 2, 'HOLIDAY', NULL, 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(29, '2025-01-29', '2025-01-01', 3, 'HOLIDAY', '春节', 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(30, '2025-01-30', '2025-01-02', 4, 'HOLIDAY', NULL, 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(31, '2025-01-31', '2025-01-03', 5, 'HOLIDAY', NULL, 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(32, '2025-02-01', '2025-01-04', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(33, '2025-02-02', '2025-01-05', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(34, '2025-02-03', '2025-01-06', 1, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(35, '2025-02-04', '2025-01-07', 2, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(36, '2025-02-05', '2025-01-08', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(37, '2025-02-06', '2025-01-09', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(38, '2025-02-07', '2025-01-10', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(39, '2025-02-08', '2025-01-11', 6, 'WORKDAY', NULL, 'Y', '春节后补班', 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(40, '2025-02-09', '2025-01-12', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(41, '2025-02-10', '2025-01-13', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(42, '2025-02-11', '2025-01-14', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(43, '2025-02-12', '2025-01-15', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(44, '2025-02-13', '2025-01-16', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(45, '2025-02-14', '2025-01-17', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(46, '2025-02-15', '2025-01-18', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(47, '2025-02-16', '2025-01-19', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(48, '2025-02-17', '2025-01-20', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(49, '2025-02-18', '2025-01-21', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(50, '2025-02-19', '2025-01-22', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(51, '2025-02-20', '2025-01-23', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(52, '2025-02-21', '2025-01-24', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(53, '2025-02-22', '2025-01-25', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(54, '2025-02-23', '2025-01-26', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(55, '2025-02-24', '2025-01-27', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(56, '2025-02-25', '2025-01-28', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(57, '2025-02-26', '2025-01-29', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(58, '2025-02-27', '2025-01-30', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(59, '2025-02-28', '2025-02-01', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(60, '2025-03-01', '2025-02-02', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(61, '2025-03-02', '2025-02-03', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(62, '2025-03-03', '2025-02-04', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(63, '2025-03-04', '2025-02-05', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(64, '2025-03-05', '2025-02-06', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(65, '2025-03-06', '2025-02-07', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(66, '2025-03-07', '2025-02-08', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(67, '2025-03-08', '2025-02-09', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(68, '2025-03-09', '2025-02-10', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(69, '2025-03-10', '2025-02-11', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(70, '2025-03-11', '2025-02-12', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(71, '2025-03-12', '2025-02-13', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(72, '2025-03-13', '2025-02-14', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(73, '2025-03-14', '2025-02-15', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(74, '2025-03-15', '2025-02-16', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(75, '2025-03-16', '2025-02-17', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(76, '2025-03-17', '2025-02-18', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(77, '2025-03-18', '2025-02-19', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(78, '2025-03-19', '2025-02-20', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(79, '2025-03-20', '2025-02-21', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(80, '2025-03-21', '2025-02-22', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(81, '2025-03-22', '2025-02-23', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(82, '2025-03-23', '2025-02-24', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(83, '2025-03-24', '2025-02-25', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(84, '2025-03-25', '2025-02-26', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(85, '2025-03-26', '2025-02-27', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(86, '2025-03-27', '2025-02-28', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(87, '2025-03-28', '2025-02-29', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(88, '2025-03-29', '2025-03-01', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(89, '2025-03-30', '2025-03-02', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(90, '2025-03-31', '2025-03-03', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(91, '2025-04-01', '2025-03-04', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(92, '2025-04-02', '2025-03-05', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(93, '2025-04-03', '2025-03-06', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(94, '2025-04-04', '2025-03-07', 5, 'HOLIDAY', '清明节', 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(95, '2025-04-05', '2025-03-08', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(96, '2025-04-06', '2025-03-09', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(97, '2025-04-07', '2025-03-10', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(98, '2025-04-08', '2025-03-11', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(99, '2025-04-09', '2025-03-12', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(100, '2025-04-10', '2025-03-13', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(101, '2025-04-11', '2025-03-14', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(102, '2025-04-12', '2025-03-15', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(103, '2025-04-13', '2025-03-16', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(104, '2025-04-14', '2025-03-17', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(105, '2025-04-15', '2025-03-18', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(106, '2025-04-16', '2025-03-19', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(107, '2025-04-17', '2025-03-20', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(108, '2025-04-18', '2025-03-21', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(109, '2025-04-19', '2025-03-22', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(110, '2025-04-20', '2025-03-23', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(111, '2025-04-21', '2025-03-24', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(112, '2025-04-22', '2025-03-25', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(113, '2025-04-23', '2025-03-26', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(114, '2025-04-24', '2025-03-27', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(115, '2025-04-25', '2025-03-28', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(116, '2025-04-26', '2025-03-29', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(117, '2025-04-27', '2025-03-30', 7, 'WORKDAY', NULL, 'Y', '劳动节前补班', 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(118, '2025-04-28', '2025-04-01', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(119, '2025-04-29', '2025-04-02', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(120, '2025-04-30', '2025-04-03', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(121, '2025-05-01', '2025-04-04', 4, 'HOLIDAY', '劳动节', 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(122, '2025-05-02', '2025-04-05', 5, 'HOLIDAY', NULL, 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(123, '2025-05-03', '2025-04-06', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(124, '2025-05-04', '2025-04-07', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(125, '2025-05-05', '2025-04-08', 1, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(126, '2025-05-06', '2025-04-09', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(127, '2025-05-07', '2025-04-10', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(128, '2025-05-08', '2025-04-11', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(129, '2025-05-09', '2025-04-12', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(130, '2025-05-10', '2025-04-13', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(131, '2025-05-11', '2025-04-14', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(132, '2025-05-12', '2025-04-15', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(133, '2025-05-13', '2025-04-16', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(134, '2025-05-14', '2025-04-17', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(135, '2025-05-15', '2025-04-18', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(136, '2025-05-16', '2025-04-19', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(137, '2025-05-17', '2025-04-20', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(138, '2025-05-18', '2025-04-21', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(139, '2025-05-19', '2025-04-22', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(140, '2025-05-20', '2025-04-23', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(141, '2025-05-21', '2025-04-24', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(142, '2025-05-22', '2025-04-25', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(143, '2025-05-23', '2025-04-26', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(144, '2025-05-24', '2025-04-27', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(145, '2025-05-25', '2025-04-28', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(146, '2025-05-26', '2025-04-29', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(147, '2025-05-27', '2025-05-01', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(148, '2025-05-28', '2025-05-02', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(149, '2025-05-29', '2025-05-03', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(150, '2025-05-30', '2025-05-04', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(151, '2025-05-31', '2025-05-05', 6, 'HOLIDAY', '端午节', 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(152, '2025-06-01', '2025-05-06', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(153, '2025-06-02', '2025-05-07', 1, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(154, '2025-06-03', '2025-05-08', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(155, '2025-06-04', '2025-05-09', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(156, '2025-06-05', '2025-05-10', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(157, '2025-06-06', '2025-05-11', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(158, '2025-06-07', '2025-05-12', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(159, '2025-06-08', '2025-05-13', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(160, '2025-06-09', '2025-05-14', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(161, '2025-06-10', '2025-05-15', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(162, '2025-06-11', '2025-05-16', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(163, '2025-06-12', '2025-05-17', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(164, '2025-06-13', '2025-05-18', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(165, '2025-06-14', '2025-05-19', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(166, '2025-06-15', '2025-05-20', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(167, '2025-06-16', '2025-05-21', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(168, '2025-06-17', '2025-05-22', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(169, '2025-06-18', '2025-05-23', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(170, '2025-06-19', '2025-05-24', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(171, '2025-06-20', '2025-05-25', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(172, '2025-06-21', '2025-05-26', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(173, '2025-06-22', '2025-05-27', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(174, '2025-06-23', '2025-05-28', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(175, '2025-06-24', '2025-05-29', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(176, '2025-06-25', '2025-06-01', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(177, '2025-06-26', '2025-06-02', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(178, '2025-06-27', '2025-06-03', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(179, '2025-06-28', '2025-06-04', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(180, '2025-06-29', '2025-06-05', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(181, '2025-06-30', '2025-06-06', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(182, '2025-07-01', '2025-06-07', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(183, '2025-07-02', '2025-06-08', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(184, '2025-07-03', '2025-06-09', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(185, '2025-07-04', '2025-06-10', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(186, '2025-07-05', '2025-06-11', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(187, '2025-07-06', '2025-06-12', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(188, '2025-07-07', '2025-06-13', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(189, '2025-07-08', '2025-06-14', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(190, '2025-07-09', '2025-06-15', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(191, '2025-07-10', '2025-06-16', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(192, '2025-07-11', '2025-06-17', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(193, '2025-07-12', '2025-06-18', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(194, '2025-07-13', '2025-06-19', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(195, '2025-07-14', '2025-06-20', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(196, '2025-07-15', '2025-06-21', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(197, '2025-07-16', '2025-06-22', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(198, '2025-07-17', '2025-06-23', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(199, '2025-07-18', '2025-06-24', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(200, '2025-07-19', '2025-06-25', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(201, '2025-07-20', '2025-06-26', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(202, '2025-07-21', '2025-06-27', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(203, '2025-07-22', '2025-06-28', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(204, '2025-07-23', '2025-06-29', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(205, '2025-07-24', '2025-06-30', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(206, '2025-07-25', '2025-06-01', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(207, '2025-07-26', '2025-06-02', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(208, '2025-07-27', '2025-06-03', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(209, '2025-07-28', '2025-06-04', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(210, '2025-07-29', '2025-06-05', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(211, '2025-07-30', '2025-06-06', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(212, '2025-07-31', '2025-06-07', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(213, '2025-08-01', '2025-06-08', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(214, '2025-08-02', '2025-06-09', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(215, '2025-08-03', '2025-06-10', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(216, '2025-08-04', '2025-06-11', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(217, '2025-08-05', '2025-06-12', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(218, '2025-08-06', '2025-06-13', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(219, '2025-08-07', '2025-06-14', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(220, '2025-08-08', '2025-06-15', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(221, '2025-08-09', '2025-06-16', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(222, '2025-08-10', '2025-06-17', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(223, '2025-08-11', '2025-06-18', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(224, '2025-08-12', '2025-06-19', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(225, '2025-08-13', '2025-06-20', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(226, '2025-08-14', '2025-06-21', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(227, '2025-08-15', '2025-06-22', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(228, '2025-08-16', '2025-06-23', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(229, '2025-08-17', '2025-06-24', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(230, '2025-08-18', '2025-06-25', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(231, '2025-08-19', '2025-06-26', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(232, '2025-08-20', '2025-06-27', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(233, '2025-08-21', '2025-06-28', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(234, '2025-08-22', '2025-06-29', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(235, '2025-08-23', '2025-07-01', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(236, '2025-08-24', '2025-07-02', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(237, '2025-08-25', '2025-07-03', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(238, '2025-08-26', '2025-07-04', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(239, '2025-08-27', '2025-07-05', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(240, '2025-08-28', '2025-07-06', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(241, '2025-08-29', '2025-07-07', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(242, '2025-08-30', '2025-07-08', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(243, '2025-08-31', '2025-07-09', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(244, '2025-09-01', '2025-07-10', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(245, '2025-09-02', '2025-07-11', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(246, '2025-09-03', '2025-07-12', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(247, '2025-09-04', '2025-07-13', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(248, '2025-09-05', '2025-07-14', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(249, '2025-09-06', '2025-07-15', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(250, '2025-09-07', '2025-07-16', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(251, '2025-09-08', '2025-07-17', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(252, '2025-09-09', '2025-07-18', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(253, '2025-09-10', '2025-07-19', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(254, '2025-09-11', '2025-07-20', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(255, '2025-09-12', '2025-07-21', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(256, '2025-09-13', '2025-07-22', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(257, '2025-09-14', '2025-07-23', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(258, '2025-09-15', '2025-07-24', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(259, '2025-09-16', '2025-07-25', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(260, '2025-09-17', '2025-07-26', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(261, '2025-09-18', '2025-07-27', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(262, '2025-09-19', '2025-07-28', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(263, '2025-09-20', '2025-07-29', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(264, '2025-09-21', '2025-07-30', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(265, '2025-09-22', '2025-08-01', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(266, '2025-09-23', '2025-08-02', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(267, '2025-09-24', '2025-08-03', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(268, '2025-09-25', '2025-08-04', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(269, '2025-09-26', '2025-08-05', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(270, '2025-09-27', '2025-08-06', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(271, '2025-09-28', '2025-08-07', 7, 'WORKDAY', NULL, 'Y', '国庆节前补班', 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(272, '2025-09-29', '2025-08-08', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(273, '2025-09-30', '2025-08-09', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(274, '2025-10-01', '2025-08-10', 3, 'HOLIDAY', '国庆节', 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(275, '2025-10-02', '2025-08-11', 4, 'HOLIDAY', NULL, 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(276, '2025-10-03', '2025-08-12', 5, 'HOLIDAY', NULL, 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(277, '2025-10-04', '2025-08-13', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(278, '2025-10-05', '2025-08-14', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(279, '2025-10-06', '2025-08-15', 1, 'HOLIDAY', '中秋节', 'N', NULL, 'Y', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(280, '2025-10-07', '2025-08-16', 2, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(281, '2025-10-08', '2025-08-17', 3, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(282, '2025-10-09', '2025-08-18', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(283, '2025-10-10', '2025-08-19', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(284, '2025-10-11', '2025-08-20', 6, 'WORKDAY', NULL, 'Y', '中秋节后补班', 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(285, '2025-10-12', '2025-08-21', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(286, '2025-10-13', '2025-08-22', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(287, '2025-10-14', '2025-08-23', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(288, '2025-10-15', '2025-08-24', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(289, '2025-10-16', '2025-08-25', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(290, '2025-10-17', '2025-08-26', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(291, '2025-10-18', '2025-08-27', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(292, '2025-10-19', '2025-08-28', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(293, '2025-10-20', '2025-08-29', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(294, '2025-10-21', '2025-09-01', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(295, '2025-10-22', '2025-09-02', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(296, '2025-10-23', '2025-09-03', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(297, '2025-10-24', '2025-09-04', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(298, '2025-10-25', '2025-09-05', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(299, '2025-10-26', '2025-09-06', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(300, '2025-10-27', '2025-09-07', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(301, '2025-10-28', '2025-09-08', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(302, '2025-10-29', '2025-09-09', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(303, '2025-10-30', '2025-09-10', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(304, '2025-10-31', '2025-09-11', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(305, '2025-11-01', '2025-09-12', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(306, '2025-11-02', '2025-09-13', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(307, '2025-11-03', '2025-09-14', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(308, '2025-11-04', '2025-09-15', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(309, '2025-11-05', '2025-09-16', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(310, '2025-11-06', '2025-09-17', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(311, '2025-11-07', '2025-09-18', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(312, '2025-11-08', '2025-09-19', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(313, '2025-11-09', '2025-09-20', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(314, '2025-11-10', '2025-09-21', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(315, '2025-11-11', '2025-09-22', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(316, '2025-11-12', '2025-09-23', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(317, '2025-11-13', '2025-09-24', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(318, '2025-11-14', '2025-09-25', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(319, '2025-11-15', '2025-09-26', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(320, '2025-11-16', '2025-09-27', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(321, '2025-11-17', '2025-09-28', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(322, '2025-11-18', '2025-09-29', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(323, '2025-11-19', '2025-09-30', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(324, '2025-11-20', '2025-10-01', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(325, '2025-11-21', '2025-10-02', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(326, '2025-11-22', '2025-10-03', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(327, '2025-11-23', '2025-10-04', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(328, '2025-11-24', '2025-10-05', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(329, '2025-11-25', '2025-10-06', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(330, '2025-11-26', '2025-10-07', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(331, '2025-11-27', '2025-10-08', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(332, '2025-11-28', '2025-10-09', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(333, '2025-11-29', '2025-10-10', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(334, '2025-11-30', '2025-10-11', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(335, '2025-12-01', '2025-10-12', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(336, '2025-12-02', '2025-10-13', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(337, '2025-12-03', '2025-10-14', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(338, '2025-12-04', '2025-10-15', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(339, '2025-12-05', '2025-10-16', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(340, '2025-12-06', '2025-10-17', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(341, '2025-12-07', '2025-10-18', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(342, '2025-12-08', '2025-10-19', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(343, '2025-12-09', '2025-10-20', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(344, '2025-12-10', '2025-10-21', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(345, '2025-12-11', '2025-10-22', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(346, '2025-12-12', '2025-10-23', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(347, '2025-12-13', '2025-10-24', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(348, '2025-12-14', '2025-10-25', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(349, '2025-12-15', '2025-10-26', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(350, '2025-12-16', '2025-10-27', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(351, '2025-12-17', '2025-10-28', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(352, '2025-12-18', '2025-10-29', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(353, '2025-12-19', '2025-10-30', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(354, '2025-12-20', '2025-11-01', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(355, '2025-12-21', '2025-11-02', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(356, '2025-12-22', '2025-11-03', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(357, '2025-12-23', '2025-11-04', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(358, '2025-12-24', '2025-11-05', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(359, '2025-12-25', '2025-11-06', 4, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(360, '2025-12-26', '2025-11-07', 5, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(361, '2025-12-27', '2025-11-08', 6, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(362, '2025-12-28', '2025-11-09', 7, 'HOLIDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(363, '2025-12-29', '2025-11-10', 1, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(364, '2025-12-30', '2025-11-11', 2, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);
+INSERT INTO sys_calendar (id, gregorian_date, lunar_date, week_day, status, festival, bad_day, description, statutory, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag) VALUES(365, '2025-12-31', '2025-11-12', 3, 'WORKDAY', NULL, 'N', NULL, 'N', 2, '2025-04-23 11:30:26', 2, '2025-04-23 11:30:26', 1, 0);

+ 535 - 0
src/test/resources/db/schema.sql

@@ -0,0 +1,535 @@
+-- punch_settle.account definition
+CREATE TABLE `account` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户id',
+	`account_name` varchar(100) NOT NULL COMMENT '账户名称',
+	`account_category` varchar(10) NOT NULL COMMENT '账户类型(BASIC-基本户,GENERAL-一般户)',
+	`points` int NOT NULL COMMENT '奖励积分',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.account_transfer_history definition
+CREATE TABLE `account_transfer_history` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户id',
+	`sender_account_id` bigint NOT NULL COMMENT '转出账户id',
+	`recipient_account_id` bigint NOT NULL COMMENT '转入账户id',
+	`transfer_category` varchar(10) NOT NULL COMMENT '转账类型(转账-TRANSFER,结算-SETTLE)',
+	`transfer_points` int NOT NULL COMMENT '转账积分',
+	`sa_points_before_transfer` int NOT NULL COMMENT '转出账户转出前积分',
+	`sa_points_after_transfer` int NOT NULL COMMENT '转出账户转出后积分',
+	`ra_points_before_transfer` int NOT NULL COMMENT '转入账户转入前积分',
+	`ra_points_after_transfer` int NOT NULL COMMENT '转入账户转入后积分',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.item_consume_win_history definition
+CREATE TABLE `item_consume_win_history` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户ID',
+	`action` varchar(30) NOT NULL COMMENT '动作(消费-CONSUME,中奖-WIN,撤销消费-REVERSE_CONSUME,撤销中奖-REVERSE_WIN)',
+	`source` varchar(100) NOT NULL COMMENT '来源',
+	`category` varchar(100) NOT NULL COMMENT '种类',
+	`amount` decimal(10, 2) NOT NULL COMMENT '金额(元)',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.pi_multi_task definition
+CREATE TABLE `pi_multi_task` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户ID',
+	`unique_id` bigint NOT NULL COMMENT '打卡多任务唯一ID',
+	`task_status` varchar(10) NOT NULL COMMENT '任务状态(活跃-ACTIVE,归档-ARCHIVE)',
+	`task_version` int NOT NULL COMMENT '任务修改版本',
+	`task_points_status` varchar(10) NOT NULL COMMENT '是否启用多任务积分计算(ENABLED-启用,DISABLED-关闭)',
+	`punch_in_done_count` int DEFAULT NULL COMMENT '打卡完成次数',
+	`points` int NOT NULL COMMENT '奖励的积分(基本)',
+	`continue_status` varchar(10) NOT NULL COMMENT '是否启用连续规则(ENABLED-启用,DISABLED-关闭)',
+	`grace_day` int DEFAULT NULL COMMENT '宽限期(单位:天)',
+	`continue_interrupted_count` int DEFAULT NULL COMMENT '连续中断次数',
+	`penalty_day` int DEFAULT NULL COMMENT '惩罚天数(单位:天)',
+	`extra_method` varchar(10) NOT NULL COMMENT '额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)',
+	`extra_points` int DEFAULT NULL COMMENT '奖励的积分(额外)',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.pi_multi_task_ext definition
+CREATE TABLE `pi_multi_task_ext` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户ID',
+	`multi_task_id` bigint NOT NULL COMMENT '多任务ID',
+	`dimension` varchar(10) NOT NULL COMMENT '使用维度(一天-ONE_DAY,多天-MULTI_DAY)',
+	`initial_value` int NOT NULL COMMENT '起始值(单位:次)',
+	`extra_points` int NOT NULL COMMENT '奖励的积分(额外)',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.pi_multi_task_history definition
+CREATE TABLE `pi_multi_task_history` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户ID',
+	`multi_task_unique_id` bigint NOT NULL COMMENT '打卡多任务唯一ID',
+	`punch_in_date` varchar(10) NOT NULL COMMENT '打卡日期',
+	`total_task_count` int NOT NULL COMMENT '总任务数',
+	`punch_in_done_count` int NOT NULL COMMENT '打卡完成数',
+	`task_continue_status` varchar(20) DEFAULT NULL COMMENT '任务连续打卡状态(连续打卡-CONTINUE、中断-INTERRUPTED)',
+	`task_continue_day` int DEFAULT NULL COMMENT '任务连续天数,第一天开始就等于1',
+	`continue_stage` varchar(10) DEFAULT NULL COMMENT '连续阶段(宽限期-GRACE_STAGE,正常打卡期-NORMAL_STAGE,惩罚期-PENALTY_STAGE)',
+	`stage_start_date` date DEFAULT NULL COMMENT '阶段开始日期',
+	`stage_end_date` date DEFAULT NULL COMMENT '阶段结束日期',
+	`continue_interrupted_count` int DEFAULT NULL COMMENT '连续中断次数',
+	`punch_in_result` varchar(10) NOT NULL COMMENT '打卡状态(DONE-完成,UNDONE-未完成)',
+	`settle_result` varchar(20) NOT NULL COMMENT '结算结果(未结算-UNSETTLED,已结算-SETTLED)',
+	`settle_pi_multi_task_id` bigint DEFAULT NULL COMMENT '结算时的打卡多任务ID',
+	`settle_task_history_id` bigint DEFAULT NULL COMMENT '结算任务执行记录ID',
+	`settle_points` int DEFAULT NULL COMMENT '结算奖励积分',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.pi_multi_task_rela definition
+CREATE TABLE `pi_multi_task_rela` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户ID',
+	`multi_task_id` bigint NOT NULL COMMENT '打卡多任务ID',
+	`task_id` bigint NOT NULL COMMENT '打卡任务ID',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.pi_status definition
+CREATE TABLE `pi_status` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户ID',
+	`multi_task_unique_id` bigint DEFAULT NULL COMMENT '打卡多任务唯一ID',
+	`task_unique_id` bigint DEFAULT NULL COMMENT '打卡任务唯一ID',
+	`status_date` date NOT NULL COMMENT '记录状态的时间',
+	`task_continue_status` varchar(20) DEFAULT NULL COMMENT '任务连续打卡状态(连续打卡-CONTINUE、中断-INTERRUPTED)',
+	`task_continue_day` int DEFAULT NULL COMMENT '任务连续天数,第一天开始就等于1',
+	`continue_stage` varchar(10) DEFAULT NULL COMMENT '连续阶段(宽限期-GRACE_STAGE,正常打卡期-NORMAL_STAGE,惩罚期-PENALTY_STAGE)',
+	`stage_start_date` date DEFAULT NULL COMMENT '阶段开始日期',
+	`stage_end_date` date DEFAULT NULL COMMENT '阶段结束日期',
+	`continue_interrupted_count` int DEFAULT NULL COMMENT '连续中断次数',
+	`repeat_category` varchar(10) DEFAULT NULL COMMENT '重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIDAY、自定义(周一至周日)-CUSTOM)',
+	`repeat_custom_day` varchar(13) DEFAULT NULL COMMENT '自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7)',
+	`repeat_start_date` date DEFAULT NULL COMMENT '重复周期开始时间',
+	`repeat_prev_total_count_in_week` int NOT NULL COMMENT '本周需打卡数(变更重复类型前)',
+	`repeat_prev_total_count_in_month` int NOT NULL COMMENT '本月需打卡数(变更重复类型前)',
+	`stat_time_in_week` char(8) NOT NULL COMMENT '统计周数(格式:yyyy-周数)',
+	`punch_in_total_count_in_week` int NOT NULL COMMENT '本周需打卡数',
+	`punch_in_count_in_week` int NOT NULL COMMENT '本周已打卡数',
+	`punch_in_done_count_in_week` int NOT NULL COMMENT '本周完成打卡数',
+	`points_in_week` int NOT NULL COMMENT '本周获取积分数',
+	`stat_time_in_month` char(7) NOT NULL COMMENT '统计月份(格式:yyyy-MM)',
+	`punch_in_total_count_in_month` int NOT NULL COMMENT '本月需打卡数',
+	`punch_in_count_in_month` int NOT NULL COMMENT '本月已打卡数',
+	`punch_in_done_count_in_month` int NOT NULL COMMENT '本月完成打卡数',
+	`points_in_month` int NOT NULL COMMENT '本月获取积分数',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.pi_status_history definition
+CREATE TABLE `pi_status_history` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户ID',
+	`multi_task_unique_id` bigint DEFAULT NULL COMMENT '打卡多任务唯一ID',
+	`task_unique_id` bigint DEFAULT NULL COMMENT '打卡任务唯一ID',
+	`status_date` date NOT NULL COMMENT '记录状态的时间',
+	`task_continue_status` varchar(20) DEFAULT NULL COMMENT '任务连续打卡状态(连续打卡-CONTINUE、中断-INTERRUPTED)',
+	`task_continue_day` int DEFAULT NULL COMMENT '任务连续天数,第一天开始就等于1',
+	`continue_stage` varchar(10) DEFAULT NULL COMMENT '连续阶段(宽限期-GRACE_STAGE,正常打卡期-NORMAL_STAGE,惩罚期-PENALTY_STAGE)',
+	`stage_start_date` date DEFAULT NULL COMMENT '阶段开始日期',
+	`stage_end_date` date DEFAULT NULL COMMENT '阶段结束日期',
+	`continue_interrupted_count` int DEFAULT NULL COMMENT '连续中断次数',
+	`repeat_category` varchar(10) DEFAULT NULL COMMENT '重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIDAY、自定义(周一至周日)-CUSTOM)',
+	`repeat_custom_day` varchar(13) DEFAULT NULL COMMENT '自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7)',
+	`repeat_start_date` date DEFAULT NULL COMMENT '重复周期开始时间',
+	`repeat_prev_total_count_in_week` int NOT NULL COMMENT '本周需打卡数(变更重复类型前)',
+	`repeat_prev_total_count_in_month` int NOT NULL COMMENT '本月需打卡数(变更重复类型前)',
+	`stat_time_in_week` char(8) NOT NULL COMMENT '统计周数(格式:yyyy-周数)',
+	`punch_in_total_count_in_week` int NOT NULL COMMENT '本周需打卡数',
+	`punch_in_count_in_week` int NOT NULL COMMENT '本周已打卡数',
+	`punch_in_done_count_in_week` int NOT NULL COMMENT '本周完成打卡数',
+	`points_in_week` int NOT NULL COMMENT '本周获取积分数',
+	`stat_time_in_month` char(7) NOT NULL COMMENT '统计月份(格式:yyyy-MM)',
+	`punch_in_total_count_in_month` int NOT NULL COMMENT '本月需打卡数',
+	`punch_in_count_in_month` int NOT NULL COMMENT '本月已打卡数',
+	`punch_in_done_count_in_month` int NOT NULL COMMENT '本月完成打卡数',
+	`points_in_month` int NOT NULL COMMENT '本月获取积分数',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.pi_task definition
+CREATE TABLE `pi_task` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`unique_id` bigint NOT NULL COMMENT '任务唯一ID',
+	`task_status` varchar(10) NOT NULL COMMENT '任务状态(活跃-ACTIVE,归档-ARCHIVE)',
+	`task_version` int NOT NULL COMMENT '任务修改版本',
+	`task_name` varchar(128) NOT NULL COMMENT '任务名称',
+	`description` varchar(300) DEFAULT NULL COMMENT '任务描述',
+	`points` int NOT NULL DEFAULT '1' COMMENT '奖励的积分(基本)',
+	`end_date` date DEFAULT NULL COMMENT '结束日期',
+	`archive_status` varchar(10) NOT NULL COMMENT '是否归档(活跃-ACTIVE,归档-ARCHIVE)',
+	`display_order` int DEFAULT NULL COMMENT '显示顺序',
+	`display_time` time DEFAULT NULL COMMENT '显示时间',
+	`punch_in_method` varchar(10) NOT NULL COMMENT '打卡方式(单次打卡-SINGLE,计数-COUNT、计时-TIMING)',
+	`compare_rule` varchar(10) DEFAULT NULL COMMENT '比较规则(大于等于-GTE,小于等于-LTE)',
+	`count_track` int DEFAULT NULL COMMENT '次数记录',
+	`time_track` time DEFAULT NULL COMMENT '时间记录',
+	`holiday_status` varchar(10) NOT NULL COMMENT '是否启用节假日奖励(ENABLED-启用,DISABLED-关闭)',
+	`holiday_count_track` int DEFAULT NULL COMMENT '次数记录(节假日用)',
+	`holiday_time_track` time DEFAULT NULL COMMENT '时间记录(节假日用)',
+	`full_attendance_status` varchar(10) NOT NULL COMMENT '是否启用全勤奖励(ENABLED-启用,DISABLED-关闭)',
+	`full_attendance_period` varchar(10) DEFAULT NULL COMMENT '全勤周期(周-WEEK,月-MONTH)',
+	`full_attendance_fault_tolerance_cnt` int DEFAULT NULL COMMENT '全勤容错次数',
+	`repeat_category` varchar(10) NOT NULL COMMENT '重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIADY、自定义(周一至周日)-CUSTOM)',
+	`repeat_custom_day` varchar(13) DEFAULT NULL COMMENT '自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7)',
+	`extra_method` varchar(10) NOT NULL COMMENT '额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)',
+	`extra_time_step` int DEFAULT NULL COMMENT '额外的时间间隔(单位:分钟)',
+	`extra_points` int DEFAULT NULL COMMENT '奖励的积分(额外)',
+	`continue_status` varchar(10) NOT NULL COMMENT '是否启用连续规则(ENABLED-启用,DISABLED-关闭)',
+	`grace_day` int DEFAULT NULL COMMENT '宽限期(单位:天)',
+	`continue_interrupted_count` int DEFAULT NULL COMMENT '连续中断次数',
+	`penalty_day` int DEFAULT NULL COMMENT '惩罚天数(单位:天)',
+	`auto_status` varchar(10) NOT NULL COMMENT '是否启用自动打卡(ENABLED-启用,DISABLED-关闭)',
+	`task_points_status` varchar(10) DEFAULT NULL COMMENT '是否启用任务积分计算(ENABLED-启用,DISABLED-关闭)',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.pi_task_ext definition
+CREATE TABLE `pi_task_ext` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户ID',
+	`task_id` bigint NOT NULL COMMENT '打卡任务ID',
+	`dimension` varchar(10) NOT NULL COMMENT '使用维度(一天-ONE_DAY,连续-CONTINUE)',
+	`initial_value` int NOT NULL COMMENT '起始值(单位:次)',
+	`extra_points` int NOT NULL COMMENT '奖励的积分(额外)',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.pi_task_history definition
+CREATE TABLE `pi_task_history` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户ID',
+	`task_unique_id` bigint NOT NULL COMMENT '打卡任务唯一ID',
+	`punch_in_date` varchar(10) NOT NULL COMMENT '打卡日期',
+	`count_track` int DEFAULT NULL COMMENT '次数记录',
+	`time_track` time DEFAULT NULL COMMENT '时间记录',
+	`task_continue_status` varchar(20) DEFAULT NULL COMMENT '任务连续打卡状态(连续打卡-CONTINUE、中断-INTERRUPTED)',
+	`task_continue_day` int DEFAULT NULL COMMENT '任务连续天数,第一天开始就等于1',
+	`continue_stage` varchar(10) DEFAULT NULL COMMENT '连续阶段(宽限期-GRACE_STAGE,正常打卡期-NORMAL_STAGE,惩罚期-PENALTY_STAGE)',
+	`stage_start_date` date DEFAULT NULL COMMENT '阶段开始日期',
+	`stage_end_date` date DEFAULT NULL COMMENT '阶段结束日期',
+	`continue_interrupted_count` int DEFAULT NULL COMMENT '连续中断次数',
+	`punch_in_result` varchar(10) NOT NULL COMMENT '打卡状态(DONE-完成,UNDONE-未完成)',
+	`settle_result` varchar(20) NOT NULL COMMENT '结算结果(未结算-UNSETTLED,已结算-SETTLED)',
+	`settle_pi_task_id` bigint DEFAULT NULL COMMENT '结算时的打卡任务ID',
+	`settle_task_history_id` bigint DEFAULT NULL COMMENT '结算任务执行记录ID',
+	`settle_points` int DEFAULT NULL COMMENT '结算奖励积分',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.reward definition
+CREATE TABLE `reward` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户id',
+	`reward_unique_id` bigint NOT NULL COMMENT '奖励唯一id',
+	`reward_status` varchar(10) NOT NULL COMMENT '奖励状态(活跃-ACTIVE,归档-ARCHIVE)',
+	`reward_version` int NOT NULL COMMENT '奖励修改版本',
+	`reward_name` varchar(100) NOT NULL COMMENT '奖励名称',
+	`exchange_points` int NOT NULL COMMENT '兑换所需积分',
+	`auto_status` varchar(10) NOT NULL COMMENT '是否启用自动兑换(ENABLED-启用,DISABLED-关闭)',
+	`auto_exchange_count` int DEFAULT NULL COMMENT '自动兑换数量',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.reward_account_rela definition
+CREATE TABLE `reward_account_rela` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户id',
+	`reward_unique_id` bigint NOT NULL COMMENT '奖励唯一id',
+	`account_id` bigint NOT NULL COMMENT '账户id',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.reward_exchange_history definition
+CREATE TABLE `reward_exchange_history` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户id',
+	`reward_id` bigint NOT NULL COMMENT '奖励id',
+	`exchange_method` varchar(10) NOT NULL COMMENT '兑换类型(手动兑换-MANUAL,自动兑换-AUTO)',
+	`exchange_count` int NOT NULL COMMENT '兑换次数',
+	`exchange_total_points` int NOT NULL COMMENT '兑换所需总积分',
+	`account_id` bigint NOT NULL COMMENT '兑换使用的账户id',
+	`account_points_before_exchange` int NOT NULL COMMENT '兑换前账户中的积分',
+	`account_points_after_exchange` int NOT NULL COMMENT '兑换后账户中的积分',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.settle_points_history definition
+CREATE TABLE `settle_points_history` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`settle_task_history_id` bigint NOT NULL COMMENT '结算任务执行ID',
+	`user_id` bigint NOT NULL COMMENT '用户表主键',
+	`settle_date` varchar(10) NOT NULL COMMENT '结算日期',
+	`settle_points` int NOT NULL COMMENT '结算积分',
+	`before_settle_points` int NOT NULL COMMENT '结算前用户拥有的积分',
+	`after_settle_points` int NOT NULL COMMENT '结算后用户拥有的积分',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.settle_task_history definition
+CREATE TABLE `settle_task_history` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`settle_date` varchar(10) NOT NULL COMMENT '结算日期',
+	`processed_total_num` int NOT NULL DEFAULT '0' COMMENT '待处理总结算数量',
+	`processed_settle_num` int NOT NULL DEFAULT '0' COMMENT '处理已结算数量',
+	`processed_unsettle_num` int NOT NULL DEFAULT '0' COMMENT '处理没结算数量',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.stat_new_user definition
+CREATE TABLE `stat_new_user` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`stat_time` char(10) NOT NULL COMMENT '统计时间(格式:yyyy-MM-dd)',
+	`new_user_count` int NOT NULL COMMENT '新用户数量',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.stat_pi_task_month definition
+CREATE TABLE `stat_pi_task_month` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户id',
+	`task_unique_id` bigint NOT NULL COMMENT '任务唯一ID',
+	`stat_time` char(7) NOT NULL COMMENT '统计时间(格式:yyyy-MM)',
+	`punch_in_total_count` int NOT NULL COMMENT '本月需打卡数',
+	`punch_in_count` int NOT NULL COMMENT '本月已打卡数',
+	`punch_in_done_count` int NOT NULL COMMENT '本月完成打卡数',
+	`punch_in_rate` decimal(5, 2) NOT NULL COMMENT '本月打卡率',
+	`punch_in_done_rate` decimal(5, 2) NOT NULL COMMENT '本月打卡完成率',
+	`points` int NOT NULL COMMENT '本月获取积分数',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.stat_pi_task_week definition
+CREATE TABLE `stat_pi_task_week` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户id',
+	`task_unique_id` bigint NOT NULL COMMENT '任务唯一ID',
+	`stat_time` char(8) NOT NULL COMMENT '统计时间(格式:yyyy-周数)',
+	`punch_in_total_count` int NOT NULL COMMENT '本周需打卡数',
+	`punch_in_count` int NOT NULL COMMENT '本周已打卡数',
+	`punch_in_done_count` int NOT NULL COMMENT '本周完成打卡数',
+	`punch_in_rate` decimal(5, 2) NOT NULL COMMENT '本周打卡率',
+	`punch_in_done_rate` decimal(5, 2) NOT NULL COMMENT '本周打卡完成率',
+	`points` int NOT NULL COMMENT '本周获取积分数',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.stat_pi_task_year definition
+CREATE TABLE `stat_pi_task_year` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户id',
+	`task_unique_id` bigint NOT NULL COMMENT '任务唯一ID',
+	`stat_time` char(4) NOT NULL COMMENT '统计时间(格式:yyyy)',
+	`punch_in_total_count` int NOT NULL COMMENT '本年需打卡数',
+	`punch_in_count` int NOT NULL COMMENT '本年已打卡数',
+	`punch_in_done_count` int NOT NULL COMMENT '本年完成打卡数',
+	`punch_in_rate` decimal(5, 2) NOT NULL COMMENT '本年打卡率',
+	`punch_in_done_rate` decimal(5, 2) NOT NULL COMMENT '本年打卡完成率',
+	`points` int NOT NULL COMMENT '本年获取积分数',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.stat_points definition
+CREATE TABLE `stat_points` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`user_id` bigint NOT NULL COMMENT '用户id',
+	`stat_time` char(10) NOT NULL COMMENT '统计时间(格式:yyyy-MM-dd)',
+	`settle_points` int NOT NULL COMMENT '每日积分的结算数',
+	`consume_points` int NOT NULL COMMENT '每日积分的消耗数量',
+	`total_points` int NOT NULL COMMENT '每日剩余总积分',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.sys_calendar definition
+CREATE TABLE `sys_calendar` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`gregorian_date` char(10) NOT NULL COMMENT '公历日期,格式:yyyy-MM-dd',
+	`lunar_date` char(10) DEFAULT NULL COMMENT '农历日期,格式:yyyy-MM-dd',
+	`week_day` int DEFAULT NULL COMMENT '周内天数(1-7),周一为1,周日为7',
+	`status` char(7) DEFAULT NULL COMMENT '状态:WORKDAY-上班, HOLIDAY-放假;上班:含正常工作日及补班;放假:含周末及节假日。',
+	`festival` varchar(30) DEFAULT NULL COMMENT '国家法定节日:元旦节, 春节, 清明节, 劳动节, 端午节, 中秋节, 国庆节。',
+	`bad_day` char(1) DEFAULT NULL COMMENT '是否补班:Y-是,N-否;需要补班,真是难受的一天!仅当需要补班时有该字段。',
+	`description` varchar(300) DEFAULT NULL COMMENT '描述,表示什么时候补班,例如劳动节前补班、国庆节后补班等。仅需要补班时有该字段。',
+	`statutory` char(1) DEFAULT NULL COMMENT '是否法定节假日:Y-是,N-否;如果是法定节假日则返回1,仅当是法定节假日时有该字段。',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.sys_dict definition
+CREATE TABLE `sys_dict` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`dict_code` varchar(100) NOT NULL COMMENT '字典编码',
+	`dict_name` varchar(100) NOT NULL COMMENT '字典名称',
+	`description` varchar(200) DEFAULT NULL COMMENT '描述',
+	`status` varchar(10) NOT NULL DEFAULT 'DISABLED' COMMENT '状态(ENABLED-启用,DISABLED-失效)',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.sys_dict_item definition
+CREATE TABLE `sys_dict_item` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`dict_id` bigint NOT NULL COMMENT '字典主键',
+	`data_type` varchar(10) NOT NULL DEFAULT 'STRING' COMMENT '数据类型(STRING-字符串,INTEGER-整型数值)',
+	`item_code` varchar(100) NOT NULL COMMENT '字典项编码',
+	`item_value` varchar(100) NOT NULL COMMENT '字典项值',
+	`description` varchar(200) DEFAULT NULL COMMENT '描述',
+	`status` varchar(10) NOT NULL DEFAULT 'DISABLED' COMMENT '状态(ENABLED-启用,DISABLED-失效)',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.sys_schedule_task definition
+CREATE TABLE `sys_schedule_task` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`task_code` varchar(100) NOT NULL COMMENT '定时任务编码',
+	`task_name` varchar(100) NOT NULL COMMENT '定时任务名称',
+	`execute_status` varchar(10) NOT NULL COMMENT '是否启用定时任务(ENABLE-开启、DISABLE-关闭)',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.sys_schedule_task_history definition
+CREATE TABLE `sys_schedule_task_history` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`task_code` varchar(100) NOT NULL COMMENT '定时任务编码',
+	`task_name` varchar(100) NOT NULL COMMENT '定时任务名称',
+	`launch_method` varchar(10) NOT NULL COMMENT '启动方式(AUTO-自动,MANUAL-手动)',
+	`start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '任务开始时间',
+	`end_time` timestamp NULL DEFAULT NULL COMMENT '任务结束时间',
+	`process_status` varchar(10) NOT NULL COMMENT '执行状态(RUNNING-执行中,SUCCESS-成功,FAIL-失败)',
+	`error_message` varchar(5000) DEFAULT NULL COMMENT '错误信息',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;
+-- punch_settle.`user` definition
+CREATE TABLE `user` (
+	`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+	`open_id` varchar(128) NOT NULL COMMENT '微信id',
+	`nickname` varchar(100) DEFAULT NULL COMMENT '微信昵称',
+	`total_points` int NOT NULL DEFAULT '0' COMMENT '总积分',
+	`unused_points` int NOT NULL DEFAULT '0' COMMENT '未使用积分',
+	`used_points` int NOT NULL DEFAULT '0' COMMENT '已使用积分',
+	`total_consume_amount` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '总消费金额(元)',
+	`total_win_amount` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '总中奖金额(元)',
+	`created_by` bigint NOT NULL COMMENT '创建人',
+	`creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+	`last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+	`last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+	`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+	`delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)'
+) ENGINE = InnoDB;