ecs-attenRule-requirements.md 9.3 KB

功能需求规格文档: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. 备注

  1. 考勤规则是单表结构,无需关联查询
  2. 提前打卡/迟到延后/旷课延后三个时间字段单位为分钟,取值范围建议 0-999
  3. 规则编码(ruleNumb)建议唯一,用于系统内部标识
  4. ECS 模块默认启用租户隔离(tenant_id 必填)