# 功能需求规格文档: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` ```yaml 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 ```yaml EcsAttendRuleVo: - attendRuleId - ruleName - ruleNumb - advanceStart - lateAfter - absentAfter - status - createTime ``` *** ## 6. 特殊需求 ```yaml 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` ```sql -- 考勤规则表 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. 备注 1. 考勤规则是单表结构,无需关联查询 2. 提前打卡/迟到延后/旷课延后三个时间字段单位为分钟,取值范围建议 0-999 3. 规则编码(ruleNumb)建议唯一,用于系统内部标识 4. ECS 模块默认启用租户隔离(tenant\_id 必填)