Browse Source

【feat】【v3】

1.完善表设计
ChenYL 10 months ago
parent
commit
79c256dd8a
1 changed files with 137 additions and 160 deletions
  1. 137 160
      doc/技术文档.md

+ 137 - 160
doc/技术文档.md

@@ -31,7 +31,7 @@ ui设计工具:即时设计
 
 #### 打卡
 
-* 打卡规则:计时、计数、单次打卡(计数的特例,只需计一次数)
+* 打卡类型:计时、计数、单次打卡(计数的特例,只需计一次数)
 * 单位:次数、分钟
 * 比较规则:大于等于、小于等于
 * 比较的目标:用于判断是否完成打卡;一般情况下,只有一个比较**目标1**;但是启用法定节假日的话,还有一个难度比较低的比较**目标2**,用于判断比较
@@ -45,12 +45,14 @@ ui设计工具:即时设计
 
 #### 获取积分奖励的方式
 
-1. 单个任务完成打卡则给予奖励
+1. 单个任务**当天**完成打卡则给予奖励
 2. 单个任务**法定节假日(含周末)**双倍奖励
-3. 单个任务全勤双倍奖励,即在**一个周期内**打卡完成率在容错范围内则给予奖励
-4. 单个任务连续完成打卡则给予奖励,按照连续打卡完成天数超过N天进行计算
-5. 多个任务完成打卡则给予奖励,按照打卡完成数超过固定值进行计算
-6. 多个任务连续完成打卡则给予奖励,按照连续打卡完成数超过固定值的天数进行计算
+3. 单个任务全勤双倍奖励,即在**一个周期内**打卡完成数在容错范围内则给予奖励
+4. 单个任务连续完成打卡则给予额外奖励,按照**连续打卡**完成天数**超过N天**k开始进行计算
+5. 多个任务完成打卡则给予额外奖励,按照**当天打卡**完成数**超过固定值**进行计算
+6. 多个任务连续完成打卡则给予奖励,按照**连续打卡**完成数**超过N天**开始进行计算
+
+
 
 
 
@@ -420,11 +422,14 @@ ui设计工具:即时设计
 
 ### 打卡任务表
 
-表名:punch_in
+表名:punch_in_task
 
 | 字段                                | 类型         | 描述                                                         | 索引     |
 | ----------------------------------- | ------------ | ------------------------------------------------------------ | -------- |
 | id                                  | bigint       | 主键                                                         | 主键索引 |
+| task_unique_id                      | bigint       | 任务唯一ID                                                   | 普通索引 |
+| task_status                         | varchar(10)  | 任务状态(活跃-ACTIVE,归档-ARCHIVE)                          |          |
+| task_version                        | int          | 任务修改版本                                                 |          |
 | task_name                           | varchar(128) | 任务名称                                                     |          |
 | description                         | varchar(300) | 任务描述                                                     |          |
 | points                              | int          | 奖励的积分(基本)                                           |          |
@@ -432,22 +437,26 @@ ui设计工具:即时设计
 | archive_status                      | varchar(10)  | 是否归档(活跃-ACTIVE,归档-ARCHIVE)                          |          |
 | display_order                       | int          | 显示顺序                                                     |          |
 | display_time                        | time         | 显示时间                                                     |          |
-| category                            | varchar(10)  | 打卡类型(单次打卡-SINGLE,计数-COUNT、计时-TIMING)           |          |
+| punch_in_method                     | varchar(10)  | 打卡方式(单次打卡-SINGLE,计数-COUNT、计时-TIMING)           |          |
 | compare_rule                        | varchar(10)  | 比较规则(大于等于-GTE,小于等于-LTE)                         |          |
 | count_track                         | int          | 次数记录                                                     |          |
 | time_track                          | time         | 时间记录                                                     |          |
-| second_count_track                  | int          | 次数记录(节假日用)                                         |          |
-| second_time_track                   | time         | 时间记录(节假日用)                                         |          |
 | holiday_status                      | varchar(10)  | 是否启用节假日奖励(ENABLED-启用,DISABLED-关闭)              |          |
+| holiday_count_track                 | int          | 次数记录(节假日用)                                         |          |
+| holiday_time_track                  | time         | 时间记录(节假日用)                                         |          |
 | full_attendance_status              | varchar(10)  | 是否启用全勤奖励(ENABLED-启用,DISABLED-关闭)                |          |
 | full_attendance_period              | varchar(10)  | 全勤周期(周-WEEK,月-MONTH)                                |          |
 | full_attendance_fault_tolerance_cnt | int          | 全勤容错次数                                                 |          |
 | repeat_category                     | varchar(10)  | 重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIADY、自定义(周一至周日)-CUSTOM) |          |
 | repeat_custom_day                   | varchar(13)  | 自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7) |          |
+| extra_method                        | varchar(10)  | 额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)           |          |
+| extra_time_step                     | time         | 额外的时间间隔                                               |          |
+| extra_points                        | int          | 奖励的积分(额外)                                           |          |
 | grace_status                        | varchar(10)  | 是否启用宽限期(ENABLED-启用,DISABLED-关闭)                  |          |
 | grace_day                           | int          | 宽限期(单位:天)                                           |          |
-| interrupted_day                     | int          | 完成打卡中断天数(单位:天)                                 |          |
+| interrupted_day                     | int          | 打卡中断天数(单位:天)                                     |          |
 | penalty_day                         | int          | 惩罚天数(单位:天)                                         |          |
+| multi_task_status                   | varchar(10)  | 是否启用多任务(ENABLED-启用,DISABLED-关闭)                  |          |
 | created_by                          | bigint       | 创建人                                                       | 普通索引 |
 | creation_time                       | timestamp    | 创建时间                                                     |          |
 | last_updated_by                     | bigint       | 最后更新人                                                   |          |
@@ -457,179 +466,147 @@ ui设计工具:即时设计
 
 
 
-### 打卡任务额外结算配置表
-
-表名:punch_in_extra_settlement_config
-
-| 字段                    | 类型        | 描述                                                   | 索引     |
-| ----------------------- | ----------- | ------------------------------------------------------ | -------- |
-| id                      | bigint      | 主键                                                   | 主键索引 |
-| punch_in_id             | bigint      | 打卡任务ID                                             | 普通索引 |
-| extra_settlement_method | varchar(10) | 额外奖励结算方式(无-NONE,固定-FIXED,区间-INTERVAL) |          |
-| extra_count_step        | int         | 额外的次数间隔                                         |          |
-| extra_time_step         | time        | 额外的时间间隔                                         |          |
-| initial_value           | int         | 起始值(单位:次)                                     |          |
-| extra_points            | int         | 奖励的积分(额外)                                     |          |
-| created_by              | bigint      | 创建人                                                 |          |
-| creation_time           | timestamp   | 创建时间                                               |          |
-| last_updated_by         | bigint      | 最后更新人                                             |          |
-| last_update_time        | timestamp   | 最后更新时间                                           |          |
-| version                 | bigint      | 版本号                                                 |          |
-| delete_flag             | tinyint     | 逻辑删除标志(0-未删除,1-已删除)                     |          |
-
-
-
-### 打卡任务配置表
-
-表名:punch_in_task_config
-
-| 字段             | 类型        | 描述                                        | 索引     |
-| ---------------- | ----------- | ------------------------------------------- | -------- |
-| id               | bigint      | 主键                                        | 主键索引 |
-| punch_in_id      | bigint      | 打卡任务ID                                  | 普通索引 |
-| grace_status     | varchar(10) | 是否启用宽限期(ENABLED-启用,DISABLED-关闭) |          |
-| grace_day        | int         | 宽限期(单位:天)                          |          |
-| interrupted_day  | int         | 打卡中断天数(单位:天)                    |          |
-| penalty_day      | int         | 惩罚天数(单位:天)                        |          |
-| created_by       | bigint      | 创建人                                      |          |
-| creation_time    | timestamp   | 创建时间                                    |          |
-| last_updated_by  | bigint      | 最后更新人                                  |          |
-| last_update_time | timestamp   | 最后更新时间                                |          |
-| version          | bigint      | 版本号                                      |          |
-| delete_flag      | tinyint     | 逻辑删除标志(0-未删除,1-已删除)          |          |
-
-
-
-### 打卡任务额外结算配置表
-
-表名:punch_in_task_extra_config
+### 打卡任务拓展表
 
-| 字段                    | 类型        | 描述                                                   | 索引     |
-| ----------------------- | ----------- | ------------------------------------------------------ | -------- |
-| id                      | bigint      | 主键                                                   | 主键索引 |
-| punch_in_id             | bigint      | 打卡任务ID                                             | 普通索引 |
-| extra_settlement_method | varchar(10) | 额外奖励结算方式(无-NONE,固定-FIXED,区间-INTERVAL) |          |
-| initial_value           | int         | 起始值(单位:天)                                     |          |
-| extra_points            | int         | 奖励的积分(额外)                                     |          |
-| created_by              | bigint      | 创建人                                                 |          |
-| creation_time           | timestamp   | 创建时间                                               |          |
-| last_updated_by         | bigint      | 最后更新人                                             |          |
-| last_update_time        | timestamp   | 最后更新时间                                           |          |
-| version                 | bigint      | 版本号                                                 |          |
-| delete_flag             | tinyint     | 逻辑删除标志(0-未删除,1-已删除)                     |          |
+表名:punch_in_task_ext
 
-
-
-### 多打卡任务配置表(单次)
-
-表名:punch_in_task_config
-
-| 字段             | 类型         | 描述                                        | 索引     |
-| ---------------- | ------------ | ------------------------------------------- | -------- |
-| id               | bigint       | 主键                                        | 主键索引 |
-| category         | varchar(10)  | 计算方式(次数-COUNT,比率-RATE)           |          |
-| punch_in_count   | int          | 完成打卡次数                                |          |
-| punch_in_rate    | decimal(5,2) | 完成率                                      |          |
-| points           | int          | 奖励的积分(基本)                          |          |
-| grace_status     | varchar(10)  | 是否启用宽限期(ENABLED-启用,DISABLED-关闭) |          |
-| grace_day        | int          | 宽限期(单位:天)                          |          |
-| interrupted_day  | int          | 打卡中断天数(单位:天)                    |          |
-| penalty_day      | int          | 惩罚天数(单位:天)                        |          |
-| created_by       | bigint       | 创建人                                      |          |
-| creation_time    | timestamp    | 创建时间                                    |          |
-| last_updated_by  | bigint       | 最后更新人                                  |          |
-| last_update_time | timestamp    | 最后更新时间                                |          |
-| version          | bigint       | 版本号                                      |          |
-| delete_flag      | tinyint      | 逻辑删除标志(0-未删除,1-已删除)          |          |
+| 字段             | 类型        | 描述                                     | 索引     |
+| ---------------- | ----------- | ---------------------------------------- | -------- |
+| id               | bigint      | 主键                                     | 主键索引 |
+| user_id          | bigint      | 用户ID                                   | 普通索引 |
+| punch_in_task_id | bigint      | 打卡任务ID                               | 普通索引 |
+| dimension        | varchar(10) | 使用维度(一天-ONE_DAY,多天-MULTI_DAY) |          |
+| initial_value    | int         | 起始值(单位:次)                       |          |
+| extra_points     | int         | 奖励的积分(额外)                       |          |
+| created_by       | bigint      | 创建人                                   |          |
+| creation_time    | timestamp   | 创建时间                                 |          |
+| last_updated_by  | bigint      | 最后更新人                               |          |
+| last_update_time | timestamp   | 最后更新时间                             |          |
+| version          | bigint      | 版本号                                   |          |
+| delete_flag      | tinyint     | 逻辑删除标志(0-未删除,1-已删除)       |          |
 
 
 
-### 多打卡任务额外结算配置表(单次)
 
-表名:punch_in_task_extra_config
 
-| 字段                    | 类型        | 描述                                                   | 索引     |
-| ----------------------- | ----------- | ------------------------------------------------------ | -------- |
-| id                      | bigint      | 主键                                                   | 主键索引 |
-| punch_in_id             | bigint      | 打卡任务ID                                             | 普通索引 |
-| extra_settlement_method | varchar(10) | 额外奖励结算方式(无-NONE,固定-FIXED,区间-INTERVAL) |          |
-| initial_value           | int         | 起始值(单位:天)                                     |          |
-| extra_points            | int         | 奖励的积分(额外)                                     |          |
-| created_by              | bigint      | 创建人                                                 |          |
-| creation_time           | timestamp   | 创建时间                                               |          |
-| last_updated_by         | bigint      | 最后更新人                                             |          |
-| last_update_time        | timestamp   | 最后更新时间                                           |          |
-| version                 | bigint      | 版本号                                                 |          |
-| delete_flag             | tinyint     | 逻辑删除标志(0-未删除,1-已删除)                     |          |
+### 打卡多任务表
 
+表名:punch_in_multi_task
 
+| 字段                 | 类型         | 描述                                               | 索引     |
+| -------------------- | ------------ | -------------------------------------------------- | -------- |
+| id                   | bigint       | 主键                                               | 主键索引 |
+| multi_task_unique_id | bigint       | 打卡多任务唯一ID                                   | 普通索引 |
+| multi_task_status    | varchar(10)  | 任务状态(活跃-ACTIVE,归档-ARCHIVE)                |          |
+| multi_task_version   | int          | 任务修改版本                                       |          |
+| user_id              | bigint       | 用户ID                                             |          |
+| punch_in_method      | varchar(10)  | 打卡方式(次数-COUNT,比率-RATE)                  |          |
+| punch_in_count       | int          | 完成打卡次数                                       |          |
+| punch_in_rate        | decimal(5,2) | 完成率                                             |          |
+| points               | int          | 奖励的积分(基本)                                   |          |
+| grace_status         | varchar(10)  | 是否启用宽限期(ENABLED-启用,DISABLED-关闭)        |          |
+| grace_day            | int          | 宽限期(单位:天)                                 |          |
+| interrupted_day      | int          | 打卡中断天数(单位:天)                           |          |
+| penalty_day          | int          | 惩罚天数(单位:天)                               |          |
+| extra_method         | varchar(10)  | 额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL) |          |
+| extra_points         | int          | 奖励的积分(额外)                                 |          |
+| created_by           | bigint       | 创建人                                             |          |
+| creation_time        | timestamp    | 创建时间                                           |          |
+| last_updated_by      | bigint       | 最后更新人                                         |          |
+| last_update_time     | timestamp    | 最后更新时间                                       |          |
+| version              | bigint       | 版本号                                             |          |
+| delete_flag          | tinyint      | 逻辑删除标志(0-未删除,1-已删除)                 |          |
 
-### 多打卡任务配置表(连续)
 
-表名:punch_in_task_config
 
-| 字段             | 类型        | 描述                                        | 索引     |
-| ---------------- | ----------- | ------------------------------------------- | -------- |
-| id               | bigint      | 主键                                        | 主键索引 |
-| points           | int         | 奖励的积分(基本)                          |          |
-| grace_status     | varchar(10) | 是否启用宽限期(ENABLED-启用,DISABLED-关闭) |          |
-| grace_day        | int         | 宽限期(单位:天)                          |          |
-| interrupted_day  | int         | 打卡中断天数(单位:天)                    |          |
-| penalty_day      | int         | 惩罚天数(单位:天)                        |          |
-| created_by       | bigint      | 创建人                                      |          |
-| creation_time    | timestamp   | 创建时间                                    |          |
-| last_updated_by  | bigint      | 最后更新人                                  |          |
-| last_update_time | timestamp   | 最后更新时间                                |          |
-| version          | bigint      | 版本号                                      |          |
-| delete_flag      | tinyint     | 逻辑删除标志(0-未删除,1-已删除)          |          |
+### 打卡多任务拓展表
 
+表名:punch_in_multi_task_ext
 
+| 字段                 | 类型        | 描述                                     | 索引     |
+| -------------------- | ----------- | ---------------------------------------- | -------- |
+| id                   | bigint      | 主键                                     | 主键索引 |
+| user_id              | bigint      | 用户ID                                   | 普通索引 |
+| multi_task_unique_id | bigint      | 多任务ID                                 | 普通索引 |
+| dimension            | varchar(10) | 使用维度(一天-ONE_DAY,多天-MULTI_DAY) |          |
+| initial_value        | int         | 起始值(单位:次)                       |          |
+| extra_points         | int         | 奖励的积分(额外)                       |          |
+| created_by           | bigint      | 创建人                                   |          |
+| creation_time        | timestamp   | 创建时间                                 |          |
+| last_updated_by      | bigint      | 最后更新人                               |          |
+| last_update_time     | timestamp   | 最后更新时间                             |          |
+| version              | bigint      | 版本号                                   |          |
+| delete_flag          | tinyint     | 逻辑删除标志(0-未删除,1-已删除)       |          |
 
-### 多打卡任务额外结算配置表(连续)
 
-表名:punch_in_task_extra_config
 
-| 字段                    | 类型        | 描述                                                   | 索引     |
-| ----------------------- | ----------- | ------------------------------------------------------ | -------- |
-| id                      | bigint      | 主键                                                   | 主键索引 |
-|                         |             |                                                        | 普通索引 |
-| extra_settlement_method | varchar(10) | 额外奖励结算方式(无-NONE,固定-FIXED,区间-INTERVAL) |          |
-| initial_value           | int         | 起始值(单位:天)                                     |          |
-| extra_points            | int         | 奖励的积分(额外)                                     |          |
-| created_by              | bigint      | 创建人                                                 |          |
-| creation_time           | timestamp   | 创建时间                                               |          |
-| last_updated_by         | bigint      | 最后更新人                                             |          |
-| last_update_time        | timestamp   | 最后更新时间                                           |          |
-| version                 | bigint      | 版本号                                                 |          |
-| delete_flag             | tinyint     | 逻辑删除标志(0-未删除,1-已删除)                     |          |
+### 打卡多任务关联表
 
+表名:punch_in_multi_task_rela
 
+| 字段                   | 类型      | 描述                               | 索引     |
+| ---------------------- | --------- | ---------------------------------- | -------- |
+| id                     | bigint    | 主键                               | 主键索引 |
+| user_id                | bigint    | 用户ID                             | 普通索引 |
+| punch_in_multi_task_id | bigint    | 打卡多任务ID                       | 普通索引 |
+| punch_in_task_id       | bigint    | 打卡任务ID                         | 普通索引 |
+| created_by             | bigint    | 创建人                             |          |
+| creation_time          | timestamp | 创建时间                           |          |
+| last_updated_by        | bigint    | 最后更新人                         |          |
+| last_update_time       | timestamp | 最后更新时间                       |          |
+| version                | bigint    | 版本号                             |          |
+| delete_flag            | tinyint   | 逻辑删除标志(0-未删除,1-已删除) |          |
 
 
 
 ### 打卡任务记录表
 
-表名:punch_in_record
-
-| 字段               | 类型        | 描述                                                         |
-| ------------------ | ----------- | ------------------------------------------------------------ |
-| id                 | bigint      | 主键                                                         |
-| punch_in_id        | bigint      | 打卡任务表主键                                               |
-| punch_in_date      | varchar(10) | 打卡日期                                                     |
-| count_track        | int         | 次数记录                                                     |
-| time_track         | time        | 时间记录                                                     |
-| settle_reward_num  | int         | 结算时任务上的奖励倍数                                       |
-| settle_category    | int         | 结算时任务上的打卡类型(0-单次打卡,1-计数、2计时)            |
-| settle_rule        | int         | 结算时任务上的比较规则(0-大于,1-大于等于,2-小于,3-小于等于) |
-| settle_count_track | int         | 结算时任务上的次数记录                                       |
-| settle_time_track  | time        | 结算时任务上的时间记录                                       |
-| punch_in_status    | int         | 打卡状态(0-进行中,1-完成,2-未完成) ,结算后修改状态,单次打卡除外 |
-| created_by         | bigint      | 创建人                                                       |
-| creation_time      | timestamp   | 创建时间                                                     |
-| last_updated_by    | bigint      | 最后更新人                                                   |
-| last_update_time   | timestamp   | 最后更新时间                                                 |
-| version            | bigint      | 版本号                                                       |
-| delete_flag        | tinyint     | 逻辑删除标志(0-未删除,1-已删除)                           |
+表名:punch_in_task_history
+
+| 字段                    | 类型        | 描述                                       | 索引     |
+| ----------------------- | ----------- | ------------------------------------------ | -------- |
+| id                      | bigint      | 主键                                       | 主键索引 |
+| user_id                 | bigint      | 用户ID                                     | 普通索引 |
+| punch_in_task_unique_id | bigint      | 打卡任务唯一ID                             | 普通索引 |
+| punch_in_date           | varchar(10) | 打卡日期                                   | 普通索引 |
+| punch_in_status         | varchar(10) | 打卡状态(DONE-完成,UNDONE-未完成)         |          |
+| count_track             | int         | 次数记录                                   |          |
+| time_track              | time        | 时间记录                                   |          |
+| settlement_status       | varchar(10) | 结算状态(已结算-SETTLED,未结算-UNSETTLED) |          |
+| settle_punch_in_task_id | bigint      | 结算时的打卡任务ID                         |          |
+| settle_points           | int         | 结算奖励积分                               |          |
+| created_by              | bigint      | 创建人                                     |          |
+| creation_time           | timestamp   | 创建时间                                   |          |
+| last_updated_by         | bigint      | 最后更新人                                 |          |
+| last_update_time        | timestamp   | 最后更新时间                               |          |
+| version                 | bigint      | 版本号                                     |          |
+| delete_flag             | tinyint     | 逻辑删除标志(0-未删除,1-已删除)         |          |
+
+
+
+### 打卡多任务记录表
+
+表名:punch_in_multi_task_history
+
+| 字段                          | 类型         | 描述                                       | 索引     |
+| ----------------------------- | ------------ | ------------------------------------------ | -------- |
+| id                            | bigint       | 主键                                       | 主键索引 |
+| user_id                       | bigint       | 用户ID                                     | 普通索引 |
+| punch_in_multi_task_unique_id | bigint       | 打卡多任务唯一ID                           | 普通索引 |
+| punch_in_date                 | varchar(10)  | 打卡日期                                   | 普通索引 |
+| punch_in_status               | varchar(10)  | 打卡状态(DONE-完成,UNDONE-未完成)         |          |
+| total_task_count              | int          | 总任务数                                   |          |
+| punch_in_count                | int          | 打卡完成数                                 |          |
+| punch_in_rate                 | decimal(5,2) | 打卡完成率                                 |          |
+| settlement_status             | varchar(10)  | 结算状态(已结算-SETTLED,未结算-UNSETTLED) |          |
+| settle_punch_in_multi_task_id | bigint       | 结算时的打卡多任务ID                       |          |
+| settle_points                 | int          | 结算奖励积分                               |          |
+| created_by                    | bigint       | 创建人                                     |          |
+| creation_time                 | timestamp    | 创建时间                                   |          |
+| last_updated_by               | bigint       | 最后更新人                                 |          |
+| last_update_time              | timestamp    | 最后更新时间                               |          |
+| version                       | bigint       | 版本号                                     |          |
+| delete_flag                   | tinyint      | 逻辑删除标志(0-未删除,1-已删除)         |          |