功能需求规格文档:ECS-考勤规则
本文档用于描述考勤规则(attenRule)业务功能需求,作为代码生成的输入依据。
1. 基础信息
| 属性 |
值 |
| 功能中文名 |
考勤规则 |
| 功能简写 |
attenRule |
| 所属模块 |
ruoyi-modules/ruoyi-ecs |
| 主表名 |
t_ecs_atten_rule |
| 从表名 |
无 |
| 是否多租户 |
是 |
| 数据库类型 |
kingbase(默认) |
| 描述 |
考勤规则管理,用于配置提前打卡、迟到、旷课等时间阈值 |
2. 接口清单
2.1 主表接口
| 接口 |
HTTP |
路径(后端) |
前端路径 |
权限字符 |
| 列表 |
GET |
/attenRule/list |
/ecs/attenRule/list |
ecs:attenRule:list |
| 详情 |
GET |
/attenRule/{id} |
/ecs/attenRule/{id} |
ecs:attenRule:query |
| 新增 |
POST |
/attenRule/ |
/ecs/attenRule/ |
ecs:attenRule:add |
| 编辑 |
PUT |
/attenRule/ |
/ecs/attenRule/ |
ecs:attenRule:edit |
| 删除 |
DELETE |
/attenRule/{ids} |
/ecs/attenRule/{ids} |
ecs:attenRule:remove |
| 导出模板 |
POST |
/attenRule/exportTemplate |
/ecs/attenRule/exportTemplate |
ecs:attenRule:export |
| 导入数据 |
POST |
/attenRule/importData |
/ecs/attenRule/importData |
ecs:attenRule:import |
| 导出数据 |
POST |
/attenRule/export |
/ecs/attenRule/export |
ecs:attenRule:export |
3. 字段属性速查表
| 属性 |
含义 |
可选值 |
说明 |
fieldName |
字段名(驼峰) |
— |
代码变量名 |
columnName |
列名(下划线) |
— |
数据库列名 |
fieldType |
Java类型 |
String/Long/Integer/BigDecimal/LocalDateTime |
|
inDb |
是否在表中存在 |
true/false |
false=纯前端计算字段 |
inTable |
列表是否显示 |
true/false |
生成表格列 |
inQuery |
是否查询字段 |
true/false |
生成搜索条件 |
queryType |
查询方式 |
eq/like/between |
精确/模糊/范围 |
inForm |
是否表单字段 |
true/false |
生成表单项 |
inAdd |
新增表单显示 |
true/false |
|
inEdit |
编辑表单显示 |
true/false |
|
required |
是否必填 |
true/false |
生成校验注解 |
dictType |
字典类型 |
字典标识 |
有值=字典下拉,否则普通输入 |
component |
前端组件类型 |
input/select/inputNumber/datetime/textarea |
默认根据类型推断 |
width |
表格列宽 |
数字(px) |
默认auto |
sort |
排序 |
数字 |
越小越靠前 |
excelExport |
Excel导出 |
true/false |
默认true |
lockRule |
操作锁定规则 |
对象 |
有值=按此字段值控制行级操作权限 |
4. 字段清单
4.1 主表 t_ecs_atten_rule
fields:
# ---------- 主键 ----------
- fieldName: attendRuleId
columnName: attend_rule_id
fieldType: Long
inDb: true
inTable: false
inForm: false
excelExport: false
remark: 考勤规则Id,雪花ID
# ---------- 业务字段 ----------
- fieldName: ruleName
columnName: rule_name
fieldType: String
inDb: true
inTable: true
inQuery: true
queryType: like
inForm: true
inAdd: true
inEdit: true
required: true
component: input
width: 150
sort: 1
excelExport: true
remark: 规则名称
- fieldName: ruleNumb
columnName: rule_numb
fieldType: String
inDb: true
inTable: true
inQuery: true
queryType: like
inForm: true
inAdd: true
inEdit: true
required: true
component: input
width: 150
sort: 2
excelExport: true
remark: 规则编码
- fieldName: advanceStart
columnName: advance_start
fieldType: Integer
inDb: true
inTable: true
inQuery: false
queryType: eq
inForm: true
inAdd: true
inEdit: true
required: false
component: inputNumber
width: 150
sort: 3
excelExport: true
remark: 提前打卡分钟数
- fieldName: lateAfter
columnName: late_after
fieldType: Integer
inDb: true
inTable: true
inQuery: false
queryType: eq
inForm: true
inAdd: true
inEdit: true
required: false
component: inputNumber
width: 150
sort: 4
excelExport: true
remark: 迟到延后分钟数
- fieldName: absentAfter
columnName: absent_after
fieldType: Integer
inDb: true
inTable: true
inQuery: false
queryType: eq
inForm: true
inAdd: true
inEdit: true
required: false
component: inputNumber
width: 150
sort: 5
excelExport: true
remark: 旷课延后分钟数
- fieldName: status
columnName: status
fieldType: String
inDb: true
inTable: true
inQuery: true
queryType: eq
inForm: true
inAdd: true
inEdit: true
required: true
dictType: sys_normal_disable
component: select
width: 100
sort: 6
excelExport: true
remark: 状态:0-正常,1-停用
# ---------- 公共字段(所有表统一包含) ----------
- fieldName: delFlag
columnName: del_flag
fieldType: String
inDb: true
inTable: false
inForm: false
- fieldName: createTime
columnName: create_time
fieldType: Date
inDb: true
inTable: true
inQuery: false
inForm: false
component: datetime
width: 180
sort: 99
excelExport: true
5. VO 结构
5.1 主表列表 VO
EcsAttendRuleVo:
- attendRuleId
- ruleName
- ruleNumb
- advanceStart
- lateAfter
- absentAfter
- status
- createTime
6. 特殊需求
special:
excelImport: true
excelExport: true
importRules:
- fieldName: ruleName
required: true
unique: false
- fieldName: ruleNumb
required: true
unique: true
max: 32
- fieldName: advanceStart
required: false
min: 0
max: 999
- fieldName: lateAfter
required: false
min: 0
max: 999
- fieldName: absentAfter
required: false
min: 0
max: 999
- fieldName: status
required: true
subTableImport: false
subTableExport: false
dubboExpose: false
7. 字典项
| 字典类型 |
枚举值 |
说明 |
sys_normal_disable |
0=正常, 1=停用 |
通用状态字典 |
8. 建表语句
数据库类型:kingbase(人大金仓)
8.1 主表 t_ecs_attend_rule
-- 考勤规则表
CREATE TABLE "dbo"."t_ecs_attend_rule" (
"attend_rule_id" bigint NOT NULL,
"rule_name" character varying(255 char) NOT NULL DEFAULT ''::varchar,
"rule_numb" character varying(32 char) NOT NULL DEFAULT ''::varchar,
"advance_start" integer,
"late_after" integer,
"absent_after" integer,
"status" character varying(16 char) NOT NULL DEFAULT '0'::varchar,
"del_flag" character(1 char) NOT NULL DEFAULT '0'::bpchar,
"tenant_id" character varying(20 char) NOT NULL DEFAULT ''::varchar,
"create_dept" bigint,
"create_by" bigint,
"create_time" timestamp,
"update_by" bigint,
"update_time" timestamp,
CONSTRAINT "t_ecs_attend_rule_pkey" PRIMARY KEY ("attend_rule_id")
);
-- 表注释
COMMENT ON TABLE "dbo"."t_ecs_attend_rule" IS '考勤规则表';
-- 列注释
COMMENT ON COLUMN "dbo"."t_ecs_attend_rule"."attend_rule_id" IS '考勤规则Id';
COMMENT ON COLUMN "dbo"."t_ecs_attend_rule"."rule_name" IS '规则名称';
COMMENT ON COLUMN "dbo"."t_ecs_attend_rule"."rule_numb" IS '规则编码';
COMMENT ON COLUMN "dbo"."t_ecs_attend_rule"."advance_start" IS '提前打卡分钟数';
COMMENT ON COLUMN "dbo"."t_ecs_attend_rule"."late_after" IS '迟到延后分钟数';
COMMENT ON COLUMN "dbo"."t_ecs_attend_rule"."absent_after" IS '旷课延后分钟数';
COMMENT ON COLUMN "dbo"."t_ecs_attend_rule"."status" IS '状态:0-正常,1-停用';
9. 备注
- 考勤规则是单表结构,无需关联查询
- 提前打卡/迟到延后/旷课延后三个时间字段单位为分钟,取值范围建议 0-999
- 规则编码(ruleNumb)建议唯一,用于系统内部标识
- ECS 模块默认启用租户隔离(tenant_id 必填)