agent.develop: 【重做·必须产出真实代码】批次1开发基础T01/T02:49表models JSON契约+ahserver(Python)/bricks脚手架+MariaDB
This commit is contained in:
parent
d801859c1c
commit
75d9ba3021
165
models/hr_contract/contract_info.json
Normal file
165
models/hr_contract/contract_info.json
Normal file
@ -0,0 +1,165 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "contract_info",
|
||||
"title": "合同台账",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "contract_no",
|
||||
"title": "合同编号",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_id",
|
||||
"title": "员工档案",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "type_id",
|
||||
"title": "合同类型",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "company_id",
|
||||
"title": "签约公司(org_contract_company)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "template_id",
|
||||
"title": "合同模板",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "start_date",
|
||||
"title": "合同起始日",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "end_date",
|
||||
"title": "合同到期日",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "sign_date",
|
||||
"title": "签订日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "contract_status",
|
||||
"title": "合同状态(字典CONTRACT_STATUS)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "file_path",
|
||||
"title": "合同文件(文件ID)",
|
||||
"type": "varchar",
|
||||
"length": 256
|
||||
},
|
||||
{
|
||||
"name": "text_file_path",
|
||||
"title": "模板生成合同文本(D4)",
|
||||
"type": "varchar",
|
||||
"length": 256
|
||||
},
|
||||
{
|
||||
"name": "flow_instance_id",
|
||||
"title": "流程实例",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "remind_rule_id",
|
||||
"title": "到期提醒规则",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "esign_status",
|
||||
"title": "电子签状态(字典ESIGN_STATUS,D4预留)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "not_enabled"
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_employee",
|
||||
"fields": [
|
||||
"employee_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_end_date",
|
||||
"fields": [
|
||||
"end_date"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"contract_status"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "contract_status",
|
||||
"source": "appcodes",
|
||||
"code": "CONTRACT_STATUS"
|
||||
},
|
||||
{
|
||||
"name": "esign_status",
|
||||
"source": "appcodes",
|
||||
"code": "ESIGN_STATUS"
|
||||
}
|
||||
]
|
||||
}
|
||||
79
models/hr_contract/contract_remind_rule.json
Normal file
79
models/hr_contract/contract_remind_rule.json
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "contract_remind_rule",
|
||||
"title": "合同到期提醒规则",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "rule_name",
|
||||
"title": "规则名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "days_before",
|
||||
"title": "提前天数",
|
||||
"type": "int",
|
||||
"default": 30
|
||||
},
|
||||
{
|
||||
"name": "target_role",
|
||||
"title": "提醒对象(self/leader/hr)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "hr"
|
||||
},
|
||||
{
|
||||
"name": "content_template",
|
||||
"title": "提醒内容模板",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [],
|
||||
"codes": []
|
||||
}
|
||||
78
models/hr_contract/contract_template.json
Normal file
78
models/hr_contract/contract_template.json
Normal file
@ -0,0 +1,78 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "contract_template",
|
||||
"title": "合同模板",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "template_name",
|
||||
"title": "模板名称",
|
||||
"type": "varchar",
|
||||
"length": 128,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "type_id",
|
||||
"title": "合同类型",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "file_path",
|
||||
"title": "模板文件(文件ID)",
|
||||
"type": "varchar",
|
||||
"length": 256
|
||||
},
|
||||
{
|
||||
"name": "field_marks_json",
|
||||
"title": "占位符映射",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [],
|
||||
"codes": []
|
||||
}
|
||||
76
models/hr_contract/contract_type.json
Normal file
76
models/hr_contract/contract_type.json
Normal file
@ -0,0 +1,76 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "contract_type",
|
||||
"title": "合同类型",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "type_code",
|
||||
"title": "类型编码",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "type_name",
|
||||
"title": "类型名称(劳动合同/保密协议/竞业协议…)",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_type_code",
|
||||
"fields": [
|
||||
"type_code"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
111
models/hr_flow/flow_def.json
Normal file
111
models/hr_flow/flow_def.json
Normal file
@ -0,0 +1,111 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "flow_def",
|
||||
"title": "流程定义",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "flow_code",
|
||||
"title": "流程编码",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "flow_name",
|
||||
"title": "流程名称",
|
||||
"type": "varchar",
|
||||
"length": 128,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "form_id",
|
||||
"title": "表单定义",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "biz_type",
|
||||
"title": "业务类型(字典FLOW_BIZ_TYPE)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "match_cond_json",
|
||||
"title": "匹配条件(员工类型/部门)",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "version",
|
||||
"title": "版本",
|
||||
"type": "int",
|
||||
"default": 1
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_flow_code",
|
||||
"fields": [
|
||||
"flow_code"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_biz_type",
|
||||
"fields": [
|
||||
"biz_type"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "biz_type",
|
||||
"source": "appcodes",
|
||||
"code": "FLOW_BIZ_TYPE"
|
||||
}
|
||||
]
|
||||
}
|
||||
93
models/hr_flow/flow_form_def.json
Normal file
93
models/hr_flow/flow_form_def.json
Normal file
@ -0,0 +1,93 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "flow_form_def",
|
||||
"title": "表单定义",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "form_code",
|
||||
"title": "表单编码",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "form_name",
|
||||
"title": "表单名称",
|
||||
"type": "varchar",
|
||||
"length": 128,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "biz_type",
|
||||
"title": "业务类型(字典FLOW_BIZ_TYPE,含attendance_*桩位)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "fields_json",
|
||||
"title": "字段定义(引用roster_field_def或自定义项)",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_form_code",
|
||||
"fields": [
|
||||
"form_code"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "biz_type",
|
||||
"source": "appcodes",
|
||||
"code": "FLOW_BIZ_TYPE"
|
||||
}
|
||||
]
|
||||
}
|
||||
132
models/hr_flow/flow_instance.json
Normal file
132
models/hr_flow/flow_instance.json
Normal file
@ -0,0 +1,132 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "flow_instance",
|
||||
"title": "流程实例",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "inst_no",
|
||||
"title": "审批编号",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "flow_id",
|
||||
"title": "流程定义",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "form_id",
|
||||
"title": "表单定义",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "biz_type",
|
||||
"title": "业务类型(字典FLOW_BIZ_TYPE)",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "biz_id",
|
||||
"title": "业务单据ID",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"title": "标题",
|
||||
"type": "varchar",
|
||||
"length": 256
|
||||
},
|
||||
{
|
||||
"name": "initiator_id",
|
||||
"title": "发起人",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "inst_status",
|
||||
"title": "实例状态(字典INST_STATUS)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "running"
|
||||
},
|
||||
{
|
||||
"name": "submit_data_json",
|
||||
"title": "提交表单数据快照",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "start_time",
|
||||
"title": "发起时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "finish_time",
|
||||
"title": "结束时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_inst_no",
|
||||
"fields": [
|
||||
"inst_no"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_biz",
|
||||
"fields": [
|
||||
"biz_type",
|
||||
"biz_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_initiator",
|
||||
"fields": [
|
||||
"initiator_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"inst_status"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "biz_type",
|
||||
"source": "appcodes",
|
||||
"code": "FLOW_BIZ_TYPE"
|
||||
},
|
||||
{
|
||||
"name": "inst_status",
|
||||
"source": "appcodes",
|
||||
"code": "INST_STATUS"
|
||||
}
|
||||
]
|
||||
}
|
||||
79
models/hr_flow/flow_node_def.json
Normal file
79
models/hr_flow/flow_node_def.json
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "flow_node_def",
|
||||
"title": "流程节点",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "flow_id",
|
||||
"title": "流程定义",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "node_seq",
|
||||
"title": "节点序号",
|
||||
"type": "int",
|
||||
"default": 1
|
||||
},
|
||||
{
|
||||
"name": "node_name",
|
||||
"title": "节点名称",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "approver_type",
|
||||
"title": "审批人类型(user/role/leader/admin/flow_role)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "approver_value",
|
||||
"title": "审批人取值",
|
||||
"type": "varchar",
|
||||
"length": 256
|
||||
},
|
||||
{
|
||||
"name": "pass_rule",
|
||||
"title": "通过规则(any/all)",
|
||||
"type": "varchar",
|
||||
"length": 8,
|
||||
"default": "all"
|
||||
},
|
||||
{
|
||||
"name": "field_perm_json",
|
||||
"title": "节点字段可读写权限",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "cc_to",
|
||||
"title": "抄送对象",
|
||||
"type": "varchar",
|
||||
"length": 512
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_flow_id",
|
||||
"fields": [
|
||||
"flow_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
59
models/hr_flow/flow_op_log.json
Normal file
59
models/hr_flow/flow_op_log.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "flow_op_log",
|
||||
"title": "流转日志",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "instance_id",
|
||||
"title": "流程实例",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "op_type",
|
||||
"title": "操作类型(submit/approve/reject/forward/cancel/withdraw)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "operator_id",
|
||||
"title": "操作人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "comment",
|
||||
"title": "意见",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_instance",
|
||||
"fields": [
|
||||
"instance_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
76
models/hr_flow/flow_role.json
Normal file
76
models/hr_flow/flow_role.json
Normal file
@ -0,0 +1,76 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "flow_role",
|
||||
"title": "审批角色",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "role_name",
|
||||
"title": "角色名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "flow_scope_json",
|
||||
"title": "可用流程范围",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "op_perm_json",
|
||||
"title": "操作权限",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "data_scope_json",
|
||||
"title": "数据查看范围",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [],
|
||||
"codes": []
|
||||
}
|
||||
84
models/hr_flow/flow_task.json
Normal file
84
models/hr_flow/flow_task.json
Normal file
@ -0,0 +1,84 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "flow_task",
|
||||
"title": "审批任务(待办/已办)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "instance_id",
|
||||
"title": "流程实例",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "node_id",
|
||||
"title": "节点定义",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "node_name",
|
||||
"title": "节点名称",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "approver_id",
|
||||
"title": "审批人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "task_status",
|
||||
"title": "任务状态(pending/approved/rejected/forwarded/cancelled)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "pending"
|
||||
},
|
||||
{
|
||||
"name": "comment",
|
||||
"title": "审批意见",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "handle_time",
|
||||
"title": "处理时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_approver_status",
|
||||
"fields": [
|
||||
"approver_id",
|
||||
"task_status"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_instance",
|
||||
"fields": [
|
||||
"instance_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
83
models/hr_org/headcount_item.json
Normal file
83
models/hr_org/headcount_item.json
Normal file
@ -0,0 +1,83 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "headcount_item",
|
||||
"title": "编制细分项(F16)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "scheme_id",
|
||||
"title": "编制方案",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "scope_json",
|
||||
"title": "占编范围条件(员工类型/状态/职位/职级/自定义字段)",
|
||||
"type": "text",
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "seg_json",
|
||||
"title": "细分维度(空=整体)",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "head_limit",
|
||||
"title": "编制数量",
|
||||
"type": "int",
|
||||
"notnull": true,
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_scheme_id",
|
||||
"fields": [
|
||||
"scheme_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
79
models/hr_org/headcount_snapshot.json
Normal file
79
models/hr_org/headcount_snapshot.json
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "headcount_snapshot",
|
||||
"title": "编制快照(F16历史回溯/实时计数)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "scheme_id",
|
||||
"title": "编制方案",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "item_id",
|
||||
"title": "细分项",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "snap_date",
|
||||
"title": "快照日期",
|
||||
"type": "date",
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "used_count",
|
||||
"title": "占编人数",
|
||||
"type": "int",
|
||||
"notnull": true,
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "over_count",
|
||||
"title": "超编数(0=未超编)",
|
||||
"type": "int",
|
||||
"notnull": true,
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_scheme_item_date",
|
||||
"fields": [
|
||||
"scheme_id",
|
||||
"item_id",
|
||||
"snap_date"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_snap_date",
|
||||
"fields": [
|
||||
"snap_date"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
80
models/hr_org/org_blacklist.json
Normal file
80
models/hr_org/org_blacklist.json
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_blacklist",
|
||||
"title": "黑名单",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"title": "姓名",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "id_number_hash",
|
||||
"title": "证件号哈希(确定性,匹配用)",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"sensitive": true
|
||||
},
|
||||
{
|
||||
"name": "id_number_cipher",
|
||||
"title": "证件号密文",
|
||||
"type": "varchar",
|
||||
"length": 256,
|
||||
"sensitive": true
|
||||
},
|
||||
{
|
||||
"name": "reason",
|
||||
"title": "拉黑原因",
|
||||
"type": "varchar",
|
||||
"length": 256
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"title": "来源(leave/manual)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "source_employee_id",
|
||||
"title": "来源员工档案",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_id_number_hash",
|
||||
"fields": [
|
||||
"id_number_hash"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
100
models/hr_org/org_concurrent_post.json
Normal file
100
models/hr_org/org_concurrent_post.json
Normal file
@ -0,0 +1,100 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_concurrent_post",
|
||||
"title": "兼岗",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_id",
|
||||
"title": "员工档案",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "org_id",
|
||||
"title": "兼岗组织",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "position_id",
|
||||
"title": "兼岗职位",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "start_date",
|
||||
"title": "开始日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "end_date",
|
||||
"title": "结束日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态(awaiting/active/expired)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "awaiting"
|
||||
},
|
||||
{
|
||||
"name": "flow_instance_id",
|
||||
"title": "流程实例",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_employee_id",
|
||||
"fields": [
|
||||
"employee_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"status"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
94
models/hr_org/org_contract_company.json
Normal file
94
models/hr_org/org_contract_company.json
Normal file
@ -0,0 +1,94 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_contract_company",
|
||||
"title": "合同公司",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "company_code",
|
||||
"title": "公司编码",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "company_name",
|
||||
"title": "公司名称",
|
||||
"type": "varchar",
|
||||
"length": 128,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "credit_code",
|
||||
"title": "统一社会信用代码",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "legal_person",
|
||||
"title": "法人",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "contact_info",
|
||||
"title": "联系方式",
|
||||
"type": "varchar",
|
||||
"length": 128
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_company_code",
|
||||
"fields": [
|
||||
"company_code"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
244
models/hr_org/org_entry.json
Normal file
244
models/hr_org/org_entry.json
Normal file
@ -0,0 +1,244 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_entry",
|
||||
"title": "入职记录",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_id",
|
||||
"title": "员工档案(可空,待入职)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"title": "姓名",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "id_type",
|
||||
"title": "证件类型(字典ID_TYPE)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "id_card"
|
||||
},
|
||||
{
|
||||
"name": "id_number_cipher",
|
||||
"title": "证件号密文",
|
||||
"type": "varchar",
|
||||
"length": 256,
|
||||
"sensitive": true
|
||||
},
|
||||
{
|
||||
"name": "id_number_hash",
|
||||
"title": "证件号哈希",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"sensitive": true
|
||||
},
|
||||
{
|
||||
"name": "id_valid_from",
|
||||
"title": "证件有效期起",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "id_valid_to",
|
||||
"title": "证件有效期止(长期=9999-12-31)",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "id_authority",
|
||||
"title": "证件签发机关",
|
||||
"type": "varchar",
|
||||
"length": 128
|
||||
},
|
||||
{
|
||||
"name": "id_source",
|
||||
"title": "证件信息来源(字典ID_SOURCE,D1手工录入)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "manual"
|
||||
},
|
||||
{
|
||||
"name": "employee_type",
|
||||
"title": "员工类型(字典EMP_TYPE)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "org_id",
|
||||
"title": "入职组织",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "position_id",
|
||||
"title": "职位",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "company_id",
|
||||
"title": "合同公司",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "work_location",
|
||||
"title": "办公地点",
|
||||
"type": "varchar",
|
||||
"length": 128
|
||||
},
|
||||
{
|
||||
"name": "hire_date",
|
||||
"title": "入职日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "entry_status",
|
||||
"title": "入职状态(字典ENTRY_STATUS)",
|
||||
"type": "varchar",
|
||||
"length": 24,
|
||||
"default": "pending_approval"
|
||||
},
|
||||
{
|
||||
"name": "is_rehire",
|
||||
"title": "是否复职(0/1)",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "register_status",
|
||||
"title": "登记表状态(none/invited/filled)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "none"
|
||||
},
|
||||
{
|
||||
"name": "register_token",
|
||||
"title": "登记表token(扫码入职降级)",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "register_url",
|
||||
"title": "登记表链接",
|
||||
"type": "varchar",
|
||||
"length": 256
|
||||
},
|
||||
{
|
||||
"name": "qrcode_file",
|
||||
"title": "登记二维码图片(文件ID)",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "register_expire",
|
||||
"title": "登记链接过期时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "flow_instance_id",
|
||||
"title": "流程实例",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_entry_status",
|
||||
"fields": [
|
||||
"entry_status"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_hire_date",
|
||||
"fields": [
|
||||
"hire_date"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_flow_instance_id",
|
||||
"fields": [
|
||||
"flow_instance_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "uk_register_token",
|
||||
"fields": [
|
||||
"register_token"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "id_type",
|
||||
"source": "appcodes",
|
||||
"code": "ID_TYPE"
|
||||
},
|
||||
{
|
||||
"name": "id_source",
|
||||
"source": "appcodes",
|
||||
"code": "ID_SOURCE"
|
||||
},
|
||||
{
|
||||
"name": "employee_type",
|
||||
"source": "appcodes",
|
||||
"code": "EMP_TYPE"
|
||||
},
|
||||
{
|
||||
"name": "entry_status",
|
||||
"source": "appcodes",
|
||||
"code": "ENTRY_STATUS"
|
||||
},
|
||||
{
|
||||
"name": "register_status",
|
||||
"source": "appcodes",
|
||||
"code": "REGISTER_STATUS"
|
||||
}
|
||||
]
|
||||
}
|
||||
99
models/hr_org/org_field_def.json
Normal file
99
models/hr_org/org_field_def.json
Normal file
@ -0,0 +1,99 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_field_def",
|
||||
"title": "组织自定义字段定义",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "field_code",
|
||||
"title": "字段编码",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "field_name",
|
||||
"title": "字段名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "field_type",
|
||||
"title": "字段类型(text/number/date/select/file)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "options_json",
|
||||
"title": "选项定义JSON",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "required",
|
||||
"title": "是否必填(0/1)",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "sort_no",
|
||||
"title": "排序号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_field_code",
|
||||
"fields": [
|
||||
"field_code"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
68
models/hr_org/org_field_value.json
Normal file
68
models/hr_org/org_field_value.json
Normal file
@ -0,0 +1,68 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_field_value",
|
||||
"title": "组织字段值(EAV)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "org_id",
|
||||
"title": "组织",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "field_id",
|
||||
"title": "字段定义",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "value_text",
|
||||
"title": "文本值",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "value_date",
|
||||
"title": "日期值",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "value_file",
|
||||
"title": "附件值(文件ID)",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_org_field",
|
||||
"fields": [
|
||||
"org_id",
|
||||
"field_id"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
92
models/hr_org/org_grade_level.json
Normal file
92
models/hr_org/org_grade_level.json
Normal file
@ -0,0 +1,92 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_grade_level",
|
||||
"title": "职级",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "level_code",
|
||||
"title": "职级编码",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "level_name",
|
||||
"title": "职级名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "level_category",
|
||||
"title": "职级类别",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "start_rank_id",
|
||||
"title": "起始职等",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "end_rank_id",
|
||||
"title": "结束职等",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "sort_no",
|
||||
"title": "排序号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_level_code",
|
||||
"fields": [
|
||||
"level_code"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
79
models/hr_org/org_grade_rank.json
Normal file
79
models/hr_org/org_grade_rank.json
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_grade_rank",
|
||||
"title": "职等",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "rank_code",
|
||||
"title": "职等编码",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "rank_name",
|
||||
"title": "职等名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "rank_level",
|
||||
"title": "职等层级",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "sort_no",
|
||||
"title": "排序号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_rank_code",
|
||||
"fields": [
|
||||
"rank_code"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
105
models/hr_org/org_headcount_scheme.json
Normal file
105
models/hr_org/org_headcount_scheme.json
Normal file
@ -0,0 +1,105 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_headcount_scheme",
|
||||
"title": "编制方案(F16)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "scheme_name",
|
||||
"title": "方案名称",
|
||||
"type": "varchar",
|
||||
"length": 128,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "cycle_type",
|
||||
"title": "周期(字典HEADCOUNT_CYCLE: year/quarter/month)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "cycle_start",
|
||||
"title": "周期起",
|
||||
"type": "date",
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "cycle_end",
|
||||
"title": "周期止",
|
||||
"type": "date",
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_cycle",
|
||||
"fields": [
|
||||
"cycle_start",
|
||||
"cycle_end"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"status"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "cycle_type",
|
||||
"source": "appcodes",
|
||||
"code": "HEADCOUNT_CYCLE"
|
||||
}
|
||||
]
|
||||
}
|
||||
107
models/hr_org/org_job.json
Normal file
107
models/hr_org/org_job.json
Normal file
@ -0,0 +1,107 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_job",
|
||||
"title": "职务(含F17横向职务)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "job_code",
|
||||
"title": "职务编码",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "job_name",
|
||||
"title": "职务名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "job_category",
|
||||
"title": "职务类别(vertical/horizontal,F17)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "vertical"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "sort_no",
|
||||
"title": "排序号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_job_code",
|
||||
"fields": [
|
||||
"job_code"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_job_category",
|
||||
"fields": [
|
||||
"job_category"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "job_category",
|
||||
"source": "appcodes",
|
||||
"code": "JOB_CATEGORY"
|
||||
}
|
||||
]
|
||||
}
|
||||
137
models/hr_org/org_leave.json
Normal file
137
models/hr_org/org_leave.json
Normal file
@ -0,0 +1,137 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_leave",
|
||||
"title": "离职记录",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_id",
|
||||
"title": "员工档案",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "leave_type",
|
||||
"title": "离职类型(辞职/劝退/合同到期/退休)",
|
||||
"type": "varchar",
|
||||
"length": 24
|
||||
},
|
||||
{
|
||||
"name": "leave_reason",
|
||||
"title": "离职原因(字典LEAVE_REASON)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "leave_date",
|
||||
"title": "离职日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "apply_type",
|
||||
"title": "申请方式(self/proxy/manual)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态(pending_leave/left/cancelled)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "pending_leave"
|
||||
},
|
||||
{
|
||||
"name": "handover_status",
|
||||
"title": "交接状态(pending/done)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "pending"
|
||||
},
|
||||
{
|
||||
"name": "certificate_file",
|
||||
"title": "离职证明文件ID",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "blacklist_flag",
|
||||
"title": "是否加入黑名单(0/1)",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "flow_instance_id",
|
||||
"title": "流程实例",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_employee_id",
|
||||
"fields": [
|
||||
"employee_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"status"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_leave_date",
|
||||
"fields": [
|
||||
"leave_date"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "leave_reason",
|
||||
"source": "appcodes",
|
||||
"code": "LEAVE_REASON"
|
||||
}
|
||||
]
|
||||
}
|
||||
82
models/hr_org/org_leave_handover.json
Normal file
82
models/hr_org/org_leave_handover.json
Normal file
@ -0,0 +1,82 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_leave_handover",
|
||||
"title": "离职交接项",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "leave_id",
|
||||
"title": "离职记录",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "item_type",
|
||||
"title": "交接项类型(字典HANDOVER_TYPE,含dingtalk_resource占位D3)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "item_content",
|
||||
"title": "交接内容",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "handover_to_id",
|
||||
"title": "交接人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态(pending/done)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "pending"
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_leave_id",
|
||||
"fields": [
|
||||
"leave_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "item_type",
|
||||
"source": "appcodes",
|
||||
"code": "HANDOVER_TYPE"
|
||||
}
|
||||
]
|
||||
}
|
||||
123
models/hr_org/org_position.json
Normal file
123
models/hr_org/org_position.json
Normal file
@ -0,0 +1,123 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_position",
|
||||
"title": "职位",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "position_code",
|
||||
"title": "职位编码",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "position_name",
|
||||
"title": "职位名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "job_id",
|
||||
"title": "职务",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "sequence_id",
|
||||
"title": "序列",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "category",
|
||||
"title": "职位类别(字典POS_CATEGORY)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "dept_ids",
|
||||
"title": "适用部门(多值,逗号分隔)",
|
||||
"type": "varchar",
|
||||
"length": 512
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"title": "职位描述",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "sort_no",
|
||||
"title": "排序号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_position_code",
|
||||
"fields": [
|
||||
"position_code"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_job_id",
|
||||
"fields": [
|
||||
"job_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "category",
|
||||
"source": "appcodes",
|
||||
"code": "POS_CATEGORY"
|
||||
}
|
||||
]
|
||||
}
|
||||
127
models/hr_org/org_project.json
Normal file
127
models/hr_org/org_project.json
Normal file
@ -0,0 +1,127 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_project",
|
||||
"title": "项目式组织(F17)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "project_code",
|
||||
"title": "项目编码",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "project_name",
|
||||
"title": "项目名称",
|
||||
"type": "varchar",
|
||||
"length": 128,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "parent_id",
|
||||
"title": "上级项目(自引用多层级)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "owner_id",
|
||||
"title": "负责人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "start_date",
|
||||
"title": "开始日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "end_date",
|
||||
"title": "结束日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "project_status",
|
||||
"title": "项目状态(字典PROJECT_STATUS)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "attrs_json",
|
||||
"title": "项目属性",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "sort_no",
|
||||
"title": "排序号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_project_code",
|
||||
"fields": [
|
||||
"project_code"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_parent_id",
|
||||
"fields": [
|
||||
"parent_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_project_status",
|
||||
"fields": [
|
||||
"project_status"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "project_status",
|
||||
"source": "appcodes",
|
||||
"code": "PROJECT_STATUS"
|
||||
}
|
||||
]
|
||||
}
|
||||
101
models/hr_org/org_project_post.json
Normal file
101
models/hr_org/org_project_post.json
Normal file
@ -0,0 +1,101 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_project_post",
|
||||
"title": "项目任职(F17横向)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "project_id",
|
||||
"title": "项目组织",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_id",
|
||||
"title": "员工",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "job_id",
|
||||
"title": "横向职务(org_job.job_category=horizontal)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "start_date",
|
||||
"title": "开始日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "end_date",
|
||||
"title": "结束日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/expired",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_proj_emp_job",
|
||||
"fields": [
|
||||
"project_id",
|
||||
"employee_id",
|
||||
"job_id",
|
||||
"start_date"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_employee_id",
|
||||
"fields": [
|
||||
"employee_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
99
models/hr_org/org_regularization.json
Normal file
99
models/hr_org/org_regularization.json
Normal file
@ -0,0 +1,99 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_regularization",
|
||||
"title": "转正记录",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_id",
|
||||
"title": "员工档案",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "probation_end_date",
|
||||
"title": "试用期止(预计转正日)",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "regular_date",
|
||||
"title": "转正日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "apply_type",
|
||||
"title": "申请方式(self/proxy/manual)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态(pending/approved/rejected/cancelled)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "pending"
|
||||
},
|
||||
{
|
||||
"name": "flow_instance_id",
|
||||
"title": "流程实例",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_employee_id",
|
||||
"fields": [
|
||||
"employee_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_regular_date",
|
||||
"fields": [
|
||||
"regular_date"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
73
models/hr_org/org_sequence.json
Normal file
73
models/hr_org/org_sequence.json
Normal file
@ -0,0 +1,73 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_sequence",
|
||||
"title": "序列",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "seq_category",
|
||||
"title": "序列类别",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "seq_name",
|
||||
"title": "序列名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "grade_level_ids",
|
||||
"title": "关联职级类别(多值,逗号分隔)",
|
||||
"type": "varchar",
|
||||
"length": 512
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [],
|
||||
"codes": []
|
||||
}
|
||||
100
models/hr_org/org_transfer.json
Normal file
100
models/hr_org/org_transfer.json
Normal file
@ -0,0 +1,100 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_transfer",
|
||||
"title": "调动单(支持批量)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "transfer_type",
|
||||
"title": "调动类型(字典TRANSFER_TYPE)",
|
||||
"type": "varchar",
|
||||
"length": 24
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态(pending/confirmed/cancelled)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "pending"
|
||||
},
|
||||
{
|
||||
"name": "effective_date",
|
||||
"title": "生效日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "batch_no",
|
||||
"title": "批次号",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "flow_instance_id",
|
||||
"title": "流程实例",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"status"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_effective_date",
|
||||
"fields": [
|
||||
"effective_date"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "transfer_type",
|
||||
"source": "appcodes",
|
||||
"code": "TRANSFER_TYPE"
|
||||
}
|
||||
]
|
||||
}
|
||||
92
models/hr_org/org_transfer_detail.json
Normal file
92
models/hr_org/org_transfer_detail.json
Normal file
@ -0,0 +1,92 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_transfer_detail",
|
||||
"title": "调动明细(逐人)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "transfer_id",
|
||||
"title": "调动单",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "employee_id",
|
||||
"title": "员工档案",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "from_org_id",
|
||||
"title": "原组织",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "to_org_id",
|
||||
"title": "新组织",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "from_position_id",
|
||||
"title": "原职位",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "to_position_id",
|
||||
"title": "新职位",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "from_grade_level_id",
|
||||
"title": "原职级",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "to_grade_level_id",
|
||||
"title": "新职级",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态(pending/done/cancelled)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "pending"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_transfer_id",
|
||||
"fields": [
|
||||
"transfer_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_employee_id",
|
||||
"fields": [
|
||||
"employee_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
133
models/hr_org/org_unit.json
Normal file
133
models/hr_org/org_unit.json
Normal file
@ -0,0 +1,133 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_unit",
|
||||
"title": "组织",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "org_code",
|
||||
"title": "组织编码",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "org_name",
|
||||
"title": "组织名称",
|
||||
"type": "varchar",
|
||||
"length": 128,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "parent_id",
|
||||
"title": "上级组织(自引用)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "org_type",
|
||||
"title": "组织类型(字典ORG_TYPE)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "leader_id",
|
||||
"title": "负责人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "effective_date",
|
||||
"title": "生效日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "expire_date",
|
||||
"title": "失效日期(空=长期)",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "sort_no",
|
||||
"title": "排序号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_org_code",
|
||||
"fields": [
|
||||
"org_code"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_parent_id",
|
||||
"fields": [
|
||||
"parent_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"status"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "org_type",
|
||||
"source": "appcodes",
|
||||
"code": "ORG_TYPE"
|
||||
}
|
||||
]
|
||||
}
|
||||
81
models/hr_org/org_unit_change.json
Normal file
81
models/hr_org/org_unit_change.json
Normal file
@ -0,0 +1,81 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "org_unit_change",
|
||||
"title": "组织变更时间轴",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "org_id",
|
||||
"title": "组织",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "change_type",
|
||||
"title": "变更类型(add/edit/disable/move/split/merge/delete)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "before_json",
|
||||
"title": "变更前快照",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "after_json",
|
||||
"title": "变更后快照",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "effective_date",
|
||||
"title": "生效日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "operator_id",
|
||||
"title": "操作人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "flow_instance_id",
|
||||
"title": "流程实例",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_org_id",
|
||||
"fields": [
|
||||
"org_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_created_at",
|
||||
"fields": [
|
||||
"created_at"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
302
models/hr_roster/roster_employee.json
Normal file
302
models/hr_roster/roster_employee.json
Normal file
@ -0,0 +1,302 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "roster_employee",
|
||||
"title": "员工主档",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_no",
|
||||
"title": "工号",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"title": "姓名",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "gender",
|
||||
"title": "性别(字典GENDER)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "id_type",
|
||||
"title": "证件类型",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "id_card"
|
||||
},
|
||||
{
|
||||
"name": "id_number_cipher",
|
||||
"title": "证件号密文(敏感)",
|
||||
"type": "varchar",
|
||||
"length": 256,
|
||||
"sensitive": true
|
||||
},
|
||||
{
|
||||
"name": "id_number_hash",
|
||||
"title": "证件号哈希(确定性,唯一/黑名单匹配)",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"sensitive": true
|
||||
},
|
||||
{
|
||||
"name": "id_valid_from",
|
||||
"title": "证件有效期起",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "id_valid_to",
|
||||
"title": "证件有效期止(长期=9999-12-31)",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "id_authority",
|
||||
"title": "证件签发机关",
|
||||
"type": "varchar",
|
||||
"length": 128
|
||||
},
|
||||
{
|
||||
"name": "id_source",
|
||||
"title": "证件信息来源(字典ID_SOURCE)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "manual"
|
||||
},
|
||||
{
|
||||
"name": "birthday",
|
||||
"title": "出生日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "phone",
|
||||
"title": "手机号(明文存储,按角色脱敏)",
|
||||
"type": "varchar",
|
||||
"length": 20,
|
||||
"sensitive": true
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"title": "邮箱",
|
||||
"type": "varchar",
|
||||
"length": 128
|
||||
},
|
||||
{
|
||||
"name": "org_id",
|
||||
"title": "组织",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "position_id",
|
||||
"title": "职位",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "job_id",
|
||||
"title": "职务",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "grade_level_id",
|
||||
"title": "职级",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "grade_rank_id",
|
||||
"title": "职等",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "sequence_id",
|
||||
"title": "序列",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "employee_type",
|
||||
"title": "员工类型(字典EMP_TYPE)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "employee_status",
|
||||
"title": "员工状态(字典EMP_STATUS)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "hire_date",
|
||||
"title": "入职日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "probation_end_date",
|
||||
"title": "试用期止(预计转正日)",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "regular_date",
|
||||
"title": "转正日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "leave_date",
|
||||
"title": "离职日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "company_id",
|
||||
"title": "合同公司",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "work_location",
|
||||
"title": "办公地点",
|
||||
"type": "varchar",
|
||||
"length": 128
|
||||
},
|
||||
{
|
||||
"name": "direct_leader_id",
|
||||
"title": "直属主管",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "prev_employee_id",
|
||||
"title": "复职关联原档案ID",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_employee_no",
|
||||
"fields": [
|
||||
"employee_no"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "uk_id_number_hash",
|
||||
"fields": [
|
||||
"id_number_hash"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_org_id",
|
||||
"fields": [
|
||||
"org_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"employee_status"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_hire_date",
|
||||
"fields": [
|
||||
"hire_date"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_probation_end",
|
||||
"fields": [
|
||||
"probation_end_date"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_direct_leader",
|
||||
"fields": [
|
||||
"direct_leader_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_prev_employee",
|
||||
"fields": [
|
||||
"prev_employee_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "gender",
|
||||
"source": "appcodes",
|
||||
"code": "GENDER"
|
||||
},
|
||||
{
|
||||
"name": "employee_type",
|
||||
"source": "appcodes",
|
||||
"code": "EMP_TYPE"
|
||||
},
|
||||
{
|
||||
"name": "employee_status",
|
||||
"source": "appcodes",
|
||||
"code": "EMP_STATUS"
|
||||
},
|
||||
{
|
||||
"name": "id_source",
|
||||
"source": "appcodes",
|
||||
"code": "ID_SOURCE"
|
||||
},
|
||||
{
|
||||
"name": "id_type",
|
||||
"source": "appcodes",
|
||||
"code": "ID_TYPE"
|
||||
}
|
||||
]
|
||||
}
|
||||
91
models/hr_roster/roster_empno_rule.json
Normal file
91
models/hr_roster/roster_empno_rule.json
Normal file
@ -0,0 +1,91 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "roster_empno_rule",
|
||||
"title": "工号规则",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "rule_name",
|
||||
"title": "规则名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "prefix",
|
||||
"title": "工号前缀",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "match_field",
|
||||
"title": "匹配字段(如company_id)",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "match_value",
|
||||
"title": "匹配值",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "seq_length",
|
||||
"title": "流水号长度",
|
||||
"type": "int",
|
||||
"default": 4
|
||||
},
|
||||
{
|
||||
"name": "current_seq",
|
||||
"title": "当前流水号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [],
|
||||
"codes": []
|
||||
}
|
||||
134
models/hr_roster/roster_field_def.json
Normal file
134
models/hr_roster/roster_field_def.json
Normal file
@ -0,0 +1,134 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "roster_field_def",
|
||||
"title": "花名册字段定义",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "group_id",
|
||||
"title": "字段分组",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "field_code",
|
||||
"title": "字段编码",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "field_name",
|
||||
"title": "字段名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "field_type",
|
||||
"title": "字段类型(text/number/date/select/multiselect/file)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "options_json",
|
||||
"title": "选项定义(字典code或自定义项)",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "required",
|
||||
"title": "是否必填(0/1)",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "sensitive",
|
||||
"title": "是否敏感(0/1,驱动脱敏与可见性)",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "editable_self",
|
||||
"title": "员工自助可编辑(0/1)",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "need_audit",
|
||||
"title": "自助修改需审核(0/1)",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "apply_types",
|
||||
"title": "适用员工类型JSON",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "sort_no",
|
||||
"title": "排序号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_field_code",
|
||||
"fields": [
|
||||
"field_code"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_group_id",
|
||||
"fields": [
|
||||
"group_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
82
models/hr_roster/roster_field_group.json
Normal file
82
models/hr_roster/roster_field_group.json
Normal file
@ -0,0 +1,82 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "roster_field_group",
|
||||
"title": "花名册字段分组",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "group_code",
|
||||
"title": "分组编码",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "group_name",
|
||||
"title": "分组名称(工作信息/个人信息/绩效结果/培训记录)",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "sort_no",
|
||||
"title": "排序号",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_group_code",
|
||||
"fields": [
|
||||
"group_code"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
87
models/hr_roster/roster_field_value.json
Normal file
87
models/hr_roster/roster_field_value.json
Normal file
@ -0,0 +1,87 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "roster_field_value",
|
||||
"title": "花名册字段值(EAV)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_id",
|
||||
"title": "员工档案",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "field_id",
|
||||
"title": "字段定义",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "value_text",
|
||||
"title": "文本值",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "value_number",
|
||||
"title": "数值",
|
||||
"type": "decimal",
|
||||
"precision": 18,
|
||||
"scale": 4
|
||||
},
|
||||
{
|
||||
"name": "value_date",
|
||||
"title": "日期值",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "value_file",
|
||||
"title": "附件值(文件ID)",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_employee_field",
|
||||
"fields": [
|
||||
"employee_id",
|
||||
"field_id"
|
||||
],
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "idx_field_id",
|
||||
"fields": [
|
||||
"field_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
77
models/hr_roster/roster_timeline.json
Normal file
77
models/hr_roster/roster_timeline.json
Normal file
@ -0,0 +1,77 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "roster_timeline",
|
||||
"title": "员工时间轴",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_id",
|
||||
"title": "员工档案",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "event_type",
|
||||
"title": "事件类型(entry/regular/transfer/leave/concurrent/contract/field_change/headcount/project/migrate)",
|
||||
"type": "varchar",
|
||||
"length": 24
|
||||
},
|
||||
{
|
||||
"name": "event_date",
|
||||
"title": "事件日期",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"title": "标题",
|
||||
"type": "varchar",
|
||||
"length": 128
|
||||
},
|
||||
{
|
||||
"name": "content_json",
|
||||
"title": "内容JSON",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "source_type",
|
||||
"title": "来源类型",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "source_id",
|
||||
"title": "来源ID",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_emp_date",
|
||||
"fields": [
|
||||
"employee_id",
|
||||
"event_date"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
80
models/hr_roster/roster_type_rule.json
Normal file
80
models/hr_roster/roster_type_rule.json
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "roster_type_rule",
|
||||
"title": "员工类型字段规则",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "employee_type",
|
||||
"title": "员工类型(字典EMP_TYPE)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "field_rules_json",
|
||||
"title": "按类型必填/隐藏字段规则",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_employee_type",
|
||||
"fields": [
|
||||
"employee_type"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "employee_type",
|
||||
"source": "appcodes",
|
||||
"code": "EMP_TYPE"
|
||||
}
|
||||
]
|
||||
}
|
||||
82
models/hr_system/sys_announcement.json
Normal file
82
models/hr_system/sys_announcement.json
Normal file
@ -0,0 +1,82 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "sys_announcement",
|
||||
"title": "企业公告(F15)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"title": "标题",
|
||||
"type": "varchar",
|
||||
"length": 256,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "content",
|
||||
"title": "内容",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "publish_scope_json",
|
||||
"title": "发布范围",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "publish_time",
|
||||
"title": "发布时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态(draft/published/offline)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "draft"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"status"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
120
models/hr_system/sys_audit_log.json
Normal file
120
models/hr_system/sys_audit_log.json
Normal file
@ -0,0 +1,120 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "sys_audit_log",
|
||||
"title": "操作日志(只增,F12)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "module",
|
||||
"title": "模块(hr-org/hr-roster/...)",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "target_type",
|
||||
"title": "对象类型(roster_employee/org_unit/...)",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "target_id",
|
||||
"title": "对象ID",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "operation",
|
||||
"title": "操作类型(字典AUDIT_OP)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "operator_id",
|
||||
"title": "操作人",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "operator_name",
|
||||
"title": "操作人姓名",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "before_json",
|
||||
"title": "变更前快照",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "after_json",
|
||||
"title": "变更后快照",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "request_ip",
|
||||
"title": "请求IP",
|
||||
"type": "varchar",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_target",
|
||||
"fields": [
|
||||
"target_type",
|
||||
"target_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_operator",
|
||||
"fields": [
|
||||
"operator_id"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_created_at",
|
||||
"fields": [
|
||||
"created_at"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_module_op",
|
||||
"fields": [
|
||||
"module",
|
||||
"operation"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "operation",
|
||||
"source": "appcodes",
|
||||
"code": "AUDIT_OP"
|
||||
}
|
||||
]
|
||||
}
|
||||
68
models/hr_system/sys_care_config.json
Normal file
68
models/hr_system/sys_care_config.json
Normal file
@ -0,0 +1,68 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "sys_care_config",
|
||||
"title": "关怀配置(生日/周年,F15)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "care_type",
|
||||
"title": "关怀类型(birthday/anniversary)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "template",
|
||||
"title": "文案模板",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "enable",
|
||||
"title": "启用(0/1)",
|
||||
"type": "int",
|
||||
"default": 1
|
||||
},
|
||||
{
|
||||
"name": "push_target",
|
||||
"title": "推送对象(employee/leader)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "employee"
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_care_type",
|
||||
"fields": [
|
||||
"care_type"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
80
models/hr_system/sys_data_scope.json
Normal file
80
models/hr_system/sys_data_scope.json
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "sys_data_scope",
|
||||
"title": "数据范围(F11)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "admin_user_id",
|
||||
"title": "管理员用户",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "scope_type",
|
||||
"title": "范围类型(org/field)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "org_ids_json",
|
||||
"title": "组织维度(含子树)",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "field_ids_json",
|
||||
"title": "花名册字段维度",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "remark",
|
||||
"title": "备注",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_admin_user",
|
||||
"fields": [
|
||||
"admin_user_id"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
97
models/hr_system/sys_message.json
Normal file
97
models/hr_system/sys_message.json
Normal file
@ -0,0 +1,97 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "sys_message",
|
||||
"title": "站内消息(F15)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "receiver_id",
|
||||
"title": "接收人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "msg_type",
|
||||
"title": "消息类型(todo/approval/remind/care/notice)",
|
||||
"type": "varchar",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"title": "标题",
|
||||
"type": "varchar",
|
||||
"length": 256
|
||||
},
|
||||
{
|
||||
"name": "content",
|
||||
"title": "内容",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "biz_type",
|
||||
"title": "业务类型",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "biz_id",
|
||||
"title": "业务ID",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "send_channel",
|
||||
"title": "发送渠道(字典MSG_CHANNEL,一期仅site;D9)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "site"
|
||||
},
|
||||
{
|
||||
"name": "is_read",
|
||||
"title": "是否已读(0/1)",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_receiver_read",
|
||||
"fields": [
|
||||
"receiver_id",
|
||||
"is_read"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "idx_created_at",
|
||||
"fields": [
|
||||
"created_at"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "send_channel",
|
||||
"source": "appcodes",
|
||||
"code": "MSG_CHANNEL"
|
||||
}
|
||||
]
|
||||
}
|
||||
93
models/hr_system/sys_openapp.json
Normal file
93
models/hr_system/sys_openapp.json
Normal file
@ -0,0 +1,93 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "sys_openapp",
|
||||
"title": "API开放应用(一期预留,FEAT-B1-01⑦)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "app_key",
|
||||
"title": "应用Key",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "app_secret_cipher",
|
||||
"title": "应用密钥密文",
|
||||
"type": "varchar",
|
||||
"length": 256,
|
||||
"sensitive": true
|
||||
},
|
||||
{
|
||||
"name": "app_name",
|
||||
"title": "应用名称",
|
||||
"type": "varchar",
|
||||
"length": 128
|
||||
},
|
||||
{
|
||||
"name": "scope_json",
|
||||
"title": "授权资源范围",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "rate_limit",
|
||||
"title": "限流(req/s,默认10)",
|
||||
"type": "int",
|
||||
"default": 10
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_app_key",
|
||||
"fields": [
|
||||
"app_key"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
89
models/hr_system/sys_policy.json
Normal file
89
models/hr_system/sys_policy.json
Normal file
@ -0,0 +1,89 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "sys_policy",
|
||||
"title": "企业政策(F15)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"title": "标题",
|
||||
"type": "varchar",
|
||||
"length": 256,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "file_path",
|
||||
"title": "政策文件(文件ID)",
|
||||
"type": "varchar",
|
||||
"length": 256
|
||||
},
|
||||
{
|
||||
"name": "view_scope_json",
|
||||
"title": "查阅范围",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "downloadable",
|
||||
"title": "允许下载(0/1)",
|
||||
"type": "int",
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"name": "publish_time",
|
||||
"title": "发布时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态(draft/published/offline)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "draft"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_status",
|
||||
"fields": [
|
||||
"status"
|
||||
]
|
||||
}
|
||||
],
|
||||
"codes": []
|
||||
}
|
||||
101
models/hr_system/sys_remind_rule.json
Normal file
101
models/hr_system/sys_remind_rule.json
Normal file
@ -0,0 +1,101 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "sys_remind_rule",
|
||||
"title": "通用提醒规则(F15)",
|
||||
"pk": [
|
||||
"id"
|
||||
],
|
||||
"charset": "utf8mb4",
|
||||
"collate": "utf8mb4_unicode_ci"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "主键",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "scene_code",
|
||||
"title": "提醒场景(字典REMIND_SCENE,≥6类)",
|
||||
"type": "varchar",
|
||||
"length": 32,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "rule_name",
|
||||
"title": "规则名称",
|
||||
"type": "varchar",
|
||||
"length": 64,
|
||||
"notnull": true
|
||||
},
|
||||
{
|
||||
"name": "days_before",
|
||||
"title": "提前天数",
|
||||
"type": "int",
|
||||
"default": 7
|
||||
},
|
||||
{
|
||||
"name": "content_template",
|
||||
"title": "提醒内容模板",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "target_role",
|
||||
"title": "提醒对象(admin/employee/leader)",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"default": "admin"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"title": "状态 active/inactive",
|
||||
"type": "varchar",
|
||||
"length": 16,
|
||||
"notnull": true,
|
||||
"default": "active"
|
||||
},
|
||||
{
|
||||
"name": "created_by",
|
||||
"title": "创建人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "updated_by",
|
||||
"title": "更新人",
|
||||
"type": "varchar",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"title": "创建时间",
|
||||
"type": "timestamp"
|
||||
},
|
||||
{
|
||||
"name": "updated_at",
|
||||
"title": "更新时间",
|
||||
"type": "timestamp"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "uk_scene_rule",
|
||||
"fields": [
|
||||
"scene_code",
|
||||
"rule_name"
|
||||
],
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"codes": [
|
||||
{
|
||||
"name": "scene_code",
|
||||
"source": "appcodes",
|
||||
"code": "REMIND_SCENE"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -155,8 +155,8 @@ ORG = {
|
||||
"title": "黑名单", "log": True, "fields": [
|
||||
V("id", "主键", 32, notnull=True),
|
||||
V("name", "姓名", 64),
|
||||
V("id_number_hash", "证件号哈希(确定性,匹配用)", 64),
|
||||
V("id_number_cipher", "证件号密文", 256),
|
||||
V("id_number_hash", "证件号哈希(确定性,匹配用)", 64, sensitive=True),
|
||||
V("id_number_cipher", "证件号密文", 256, sensitive=True),
|
||||
V("reason", "拉黑原因", 256),
|
||||
V("source", "来源(leave/manual)", 16),
|
||||
V("source_employee_id", "来源员工档案", 32),
|
||||
@ -183,8 +183,8 @@ ORG = {
|
||||
V("employee_id", "员工档案(可空,待入职)", 32),
|
||||
V("name", "姓名", 64, notnull=True),
|
||||
V("id_type", "证件类型(字典ID_TYPE)", 16, default="id_card"),
|
||||
V("id_number_cipher", "证件号密文", 256),
|
||||
V("id_number_hash", "证件号哈希", 64),
|
||||
V("id_number_cipher", "证件号密文", 256, sensitive=True),
|
||||
V("id_number_hash", "证件号哈希", 64, sensitive=True),
|
||||
F("id_valid_from", "证件有效期起", "date"),
|
||||
F("id_valid_to", "证件有效期止(长期=9999-12-31)", "date"),
|
||||
V("id_authority", "证件签发机关", 128),
|
||||
@ -742,7 +742,7 @@ SYS = {
|
||||
"title": "API开放应用(一期预留,FEAT-B1-01⑦)", "fields": [
|
||||
V("id", "主键", 32, notnull=True),
|
||||
V("app_key", "应用Key", 64, notnull=True),
|
||||
V("app_secret_cipher", "应用密钥密文", 256),
|
||||
V("app_secret_cipher", "应用密钥密文", 256, sensitive=True),
|
||||
V("app_name", "应用名称", 128),
|
||||
F("scope_json", "授权资源范围", "text"),
|
||||
F("rate_limit", "限流(req/s,默认10)", "int", default=10),
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""json2ddl 等价实现(ocai database-table-definition-spec):
|
||||
读取 models/{module}/*.json(summary/fields/indexes/codes),生成幂等 MySQL/MariaDB DDL。
|
||||
幂等性:CREATE TABLE IF NOT EXISTS;索引先查 information_schema 再按需补建(可重跑)。
|
||||
幂等性:CREATE TABLE IF NOT EXISTS;索引随建表语句一并声明,可整体重跑不报错。
|
||||
用法:python3 scripts/json2ddl.py <models根目录> [输出sql文件]
|
||||
"""
|
||||
import json, os, sys, glob
|
||||
@ -26,7 +26,11 @@ def render_field(f):
|
||||
if "default" in f and t != "timestamp":
|
||||
dv = f["default"]
|
||||
col += f" DEFAULT '{dv}'" if isinstance(dv, str) else f" DEFAULT {dv}"
|
||||
col += f" COMMENT '{f['title']}'"
|
||||
title = f["title"]
|
||||
if f.get("sensitive"):
|
||||
title += "【敏感:sensitive,落库加密/脱敏展示】"
|
||||
title = title.replace("'", " ")
|
||||
col += f" COMMENT '{title}'"
|
||||
return col
|
||||
|
||||
def render_index_sql(table, idx):
|
||||
@ -45,23 +49,18 @@ def gen_table_ddl(path):
|
||||
lines.append(render_index_sql(table, idx))
|
||||
charset = s.get("charset", "utf8mb4")
|
||||
collate = s.get("collate", "utf8mb4_unicode_ci")
|
||||
title = s.get("title", table)
|
||||
title = str(s.get("title", table)).replace("'", " ")
|
||||
return table, (f"CREATE TABLE IF NOT EXISTS `{table}` (\n" + ",\n".join(lines) +
|
||||
f"\n) ENGINE=InnoDB DEFAULT CHARSET={charset} COLLATE={collate} COMMENT='{title}';")
|
||||
|
||||
def gen_index_guard_sql(table, idx):
|
||||
"""运行时补索引(建表时已含;此处供重跑补漏,apply_ddl.py 使用)"""
|
||||
kind = "UNIQUE INDEX" if idx.get("unique") else "INDEX"
|
||||
cols = ",".join(f"`{c}`" for c in idx["fields"])
|
||||
return f"ALTER TABLE `{table}` ADD {kind} `{idx['name']}` ({cols});"
|
||||
|
||||
def main():
|
||||
src = sys.argv[1] if len(sys.argv) > 1 else "models"
|
||||
out = sys.argv[2] if len(sys.argv) > 2 else None
|
||||
parts = ["-- 人事系统 hr-web 批次1 DDL(json2ddl 生成,幂等可重跑)",
|
||||
"-- 来源:models/*.json(database-design.md v3.0,49 表);目标库:hrs(MariaDB)",
|
||||
"-- 执行:mysql -utest -ptest123 hrs < mysql.ddl.sql 或 python3 scripts/apply_ddl.py",
|
||||
"SET NAMES utf8mb4;", ""]
|
||||
"-- 执行:mysql -utest -ptest123 hrs < sql/V001__init_hrs.sql 或 python3 scripts/apply_ddl.py",
|
||||
"SET NAMES utf8mb4;",
|
||||
"SET FOREIGN_KEY_CHECKS=0;", ""]
|
||||
n = 0
|
||||
for moddir in sorted(glob.glob(os.path.join(src, "*"))):
|
||||
if not os.path.isdir(moddir):
|
||||
@ -76,9 +75,11 @@ def main():
|
||||
parts.append(ddl)
|
||||
parts.append("")
|
||||
n += 1
|
||||
parts.append("SET FOREIGN_KEY_CHECKS=1;")
|
||||
parts.append(f"-- 共 {n} 张表")
|
||||
sql = "\n".join(parts) + "\n"
|
||||
if out:
|
||||
os.makedirs(os.path.dirname(out) or ".", exist_ok=True)
|
||||
with open(out, "w", encoding="utf-8") as f:
|
||||
f.write(sql)
|
||||
print(f"生成 {out}:{n} 张表")
|
||||
|
||||
906
sql/V001__init_hrs.sql
Normal file
906
sql/V001__init_hrs.sql
Normal file
@ -0,0 +1,906 @@
|
||||
-- 人事系统 hr-web 批次1 DDL(json2ddl 生成,幂等可重跑)
|
||||
-- 来源:models/*.json(database-design.md v3.0,49 表);目标库:hrs(MariaDB)
|
||||
-- 执行:mysql -utest -ptest123 hrs < sql/V001__init_hrs.sql 或 python3 scripts/apply_ddl.py
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
-- ===== hr_contract(4 张)=====
|
||||
-- contract_info
|
||||
CREATE TABLE IF NOT EXISTS `contract_info` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`contract_no` VARCHAR(64) NOT NULL COMMENT '合同编号',
|
||||
`employee_id` VARCHAR(32) COMMENT '员工档案',
|
||||
`type_id` VARCHAR(32) COMMENT '合同类型',
|
||||
`company_id` VARCHAR(32) COMMENT '签约公司(org_contract_company)',
|
||||
`template_id` VARCHAR(32) COMMENT '合同模板',
|
||||
`start_date` DATE COMMENT '合同起始日',
|
||||
`end_date` DATE COMMENT '合同到期日',
|
||||
`sign_date` DATE COMMENT '签订日期',
|
||||
`contract_status` VARCHAR(16) DEFAULT 'active' COMMENT '合同状态(字典CONTRACT_STATUS)',
|
||||
`file_path` VARCHAR(256) COMMENT '合同文件(文件ID)',
|
||||
`text_file_path` VARCHAR(256) COMMENT '模板生成合同文本(D4)',
|
||||
`flow_instance_id` VARCHAR(32) COMMENT '流程实例',
|
||||
`remind_rule_id` VARCHAR(32) COMMENT '到期提醒规则',
|
||||
`esign_status` VARCHAR(16) DEFAULT 'not_enabled' COMMENT '电子签状态(字典ESIGN_STATUS,D4预留)',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_employee` (`employee_id`),
|
||||
KEY `idx_end_date` (`end_date`),
|
||||
KEY `idx_status` (`contract_status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同台账';
|
||||
|
||||
-- contract_remind_rule
|
||||
CREATE TABLE IF NOT EXISTS `contract_remind_rule` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`rule_name` VARCHAR(64) NOT NULL COMMENT '规则名称',
|
||||
`days_before` INT DEFAULT 30 COMMENT '提前天数',
|
||||
`target_role` VARCHAR(16) DEFAULT 'hr' COMMENT '提醒对象(self/leader/hr)',
|
||||
`content_template` TEXT COMMENT '提醒内容模板',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同到期提醒规则';
|
||||
|
||||
-- contract_template
|
||||
CREATE TABLE IF NOT EXISTS `contract_template` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`template_name` VARCHAR(128) NOT NULL COMMENT '模板名称',
|
||||
`type_id` VARCHAR(32) COMMENT '合同类型',
|
||||
`file_path` VARCHAR(256) COMMENT '模板文件(文件ID)',
|
||||
`field_marks_json` TEXT COMMENT '占位符映射',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同模板';
|
||||
|
||||
-- contract_type
|
||||
CREATE TABLE IF NOT EXISTS `contract_type` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`type_code` VARCHAR(32) NOT NULL COMMENT '类型编码',
|
||||
`type_name` VARCHAR(64) NOT NULL COMMENT '类型名称(劳动合同/保密协议/竞业协议…)',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_type_code` (`type_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同类型';
|
||||
|
||||
-- ===== hr_flow(7 张)=====
|
||||
-- flow_def
|
||||
CREATE TABLE IF NOT EXISTS `flow_def` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`flow_code` VARCHAR(64) NOT NULL COMMENT '流程编码',
|
||||
`flow_name` VARCHAR(128) NOT NULL COMMENT '流程名称',
|
||||
`form_id` VARCHAR(32) COMMENT '表单定义',
|
||||
`biz_type` VARCHAR(32) COMMENT '业务类型(字典FLOW_BIZ_TYPE)',
|
||||
`match_cond_json` TEXT COMMENT '匹配条件(员工类型/部门)',
|
||||
`version` INT DEFAULT 1 COMMENT '版本',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_flow_code` (`flow_code`),
|
||||
KEY `idx_biz_type` (`biz_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='流程定义';
|
||||
|
||||
-- flow_form_def
|
||||
CREATE TABLE IF NOT EXISTS `flow_form_def` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`form_code` VARCHAR(64) NOT NULL COMMENT '表单编码',
|
||||
`form_name` VARCHAR(128) NOT NULL COMMENT '表单名称',
|
||||
`biz_type` VARCHAR(32) COMMENT '业务类型(字典FLOW_BIZ_TYPE,含attendance_*桩位)',
|
||||
`fields_json` TEXT COMMENT '字段定义(引用roster_field_def或自定义项)',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_form_code` (`form_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='表单定义';
|
||||
|
||||
-- flow_instance
|
||||
CREATE TABLE IF NOT EXISTS `flow_instance` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`inst_no` VARCHAR(32) NOT NULL COMMENT '审批编号',
|
||||
`flow_id` VARCHAR(32) NOT NULL COMMENT '流程定义',
|
||||
`form_id` VARCHAR(32) NOT NULL COMMENT '表单定义',
|
||||
`biz_type` VARCHAR(32) NOT NULL COMMENT '业务类型(字典FLOW_BIZ_TYPE)',
|
||||
`biz_id` VARCHAR(32) COMMENT '业务单据ID',
|
||||
`title` VARCHAR(256) COMMENT '标题',
|
||||
`initiator_id` VARCHAR(32) NOT NULL COMMENT '发起人',
|
||||
`inst_status` VARCHAR(16) NOT NULL DEFAULT 'running' COMMENT '实例状态(字典INST_STATUS)',
|
||||
`submit_data_json` TEXT COMMENT '提交表单数据快照',
|
||||
`start_time` TIMESTAMP NULL DEFAULT NULL COMMENT '发起时间',
|
||||
`finish_time` TIMESTAMP NULL DEFAULT NULL COMMENT '结束时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_inst_no` (`inst_no`),
|
||||
KEY `idx_biz` (`biz_type`,`biz_id`),
|
||||
KEY `idx_initiator` (`initiator_id`),
|
||||
KEY `idx_status` (`inst_status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='流程实例';
|
||||
|
||||
-- flow_node_def
|
||||
CREATE TABLE IF NOT EXISTS `flow_node_def` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`flow_id` VARCHAR(32) COMMENT '流程定义',
|
||||
`node_seq` INT DEFAULT 1 COMMENT '节点序号',
|
||||
`node_name` VARCHAR(64) COMMENT '节点名称',
|
||||
`approver_type` VARCHAR(16) COMMENT '审批人类型(user/role/leader/admin/flow_role)',
|
||||
`approver_value` VARCHAR(256) COMMENT '审批人取值',
|
||||
`pass_rule` VARCHAR(8) DEFAULT 'all' COMMENT '通过规则(any/all)',
|
||||
`field_perm_json` TEXT COMMENT '节点字段可读写权限',
|
||||
`cc_to` VARCHAR(512) COMMENT '抄送对象',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_flow_id` (`flow_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='流程节点';
|
||||
|
||||
-- flow_op_log
|
||||
CREATE TABLE IF NOT EXISTS `flow_op_log` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`instance_id` VARCHAR(32) COMMENT '流程实例',
|
||||
`op_type` VARCHAR(16) COMMENT '操作类型(submit/approve/reject/forward/cancel/withdraw)',
|
||||
`operator_id` VARCHAR(32) COMMENT '操作人',
|
||||
`comment` TEXT COMMENT '意见',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_instance` (`instance_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='流转日志';
|
||||
|
||||
-- flow_role
|
||||
CREATE TABLE IF NOT EXISTS `flow_role` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`role_name` VARCHAR(64) NOT NULL COMMENT '角色名称',
|
||||
`flow_scope_json` TEXT COMMENT '可用流程范围',
|
||||
`op_perm_json` TEXT COMMENT '操作权限',
|
||||
`data_scope_json` TEXT COMMENT '数据查看范围',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='审批角色';
|
||||
|
||||
-- flow_task
|
||||
CREATE TABLE IF NOT EXISTS `flow_task` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`instance_id` VARCHAR(32) COMMENT '流程实例',
|
||||
`node_id` VARCHAR(32) COMMENT '节点定义',
|
||||
`node_name` VARCHAR(64) COMMENT '节点名称',
|
||||
`approver_id` VARCHAR(32) COMMENT '审批人',
|
||||
`task_status` VARCHAR(16) DEFAULT 'pending' COMMENT '任务状态(pending/approved/rejected/forwarded/cancelled)',
|
||||
`comment` TEXT COMMENT '审批意见',
|
||||
`handle_time` TIMESTAMP NULL DEFAULT NULL COMMENT '处理时间',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_approver_status` (`approver_id`,`task_status`),
|
||||
KEY `idx_instance` (`instance_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='审批任务(待办/已办)';
|
||||
|
||||
-- ===== hr_org(23 张)=====
|
||||
-- headcount_item
|
||||
CREATE TABLE IF NOT EXISTS `headcount_item` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`scheme_id` VARCHAR(32) NOT NULL COMMENT '编制方案',
|
||||
`scope_json` TEXT NOT NULL COMMENT '占编范围条件(员工类型/状态/职位/职级/自定义字段)',
|
||||
`seg_json` TEXT COMMENT '细分维度(空=整体)',
|
||||
`head_limit` INT NOT NULL DEFAULT 0 COMMENT '编制数量',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_scheme_id` (`scheme_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='编制细分项(F16)';
|
||||
|
||||
-- headcount_snapshot
|
||||
CREATE TABLE IF NOT EXISTS `headcount_snapshot` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`scheme_id` VARCHAR(32) NOT NULL COMMENT '编制方案',
|
||||
`item_id` VARCHAR(32) NOT NULL COMMENT '细分项',
|
||||
`snap_date` DATE NOT NULL COMMENT '快照日期',
|
||||
`used_count` INT NOT NULL DEFAULT 0 COMMENT '占编人数',
|
||||
`over_count` INT NOT NULL DEFAULT 0 COMMENT '超编数(0=未超编)',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_scheme_item_date` (`scheme_id`,`item_id`,`snap_date`),
|
||||
KEY `idx_snap_date` (`snap_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='编制快照(F16历史回溯/实时计数)';
|
||||
|
||||
-- org_blacklist
|
||||
CREATE TABLE IF NOT EXISTS `org_blacklist` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`name` VARCHAR(64) COMMENT '姓名',
|
||||
`id_number_hash` VARCHAR(64) COMMENT '证件号哈希(确定性,匹配用)【敏感:sensitive,落库加密/脱敏展示】',
|
||||
`id_number_cipher` VARCHAR(256) COMMENT '证件号密文【敏感:sensitive,落库加密/脱敏展示】',
|
||||
`reason` VARCHAR(256) COMMENT '拉黑原因',
|
||||
`source` VARCHAR(16) COMMENT '来源(leave/manual)',
|
||||
`source_employee_id` VARCHAR(32) COMMENT '来源员工档案',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_id_number_hash` (`id_number_hash`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='黑名单';
|
||||
|
||||
-- org_concurrent_post
|
||||
CREATE TABLE IF NOT EXISTS `org_concurrent_post` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`employee_id` VARCHAR(32) COMMENT '员工档案',
|
||||
`org_id` VARCHAR(32) COMMENT '兼岗组织',
|
||||
`position_id` VARCHAR(32) COMMENT '兼岗职位',
|
||||
`start_date` DATE COMMENT '开始日期',
|
||||
`end_date` DATE COMMENT '结束日期',
|
||||
`status` VARCHAR(16) DEFAULT 'awaiting' COMMENT '状态(awaiting/active/expired)',
|
||||
`flow_instance_id` VARCHAR(32) COMMENT '流程实例',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_employee_id` (`employee_id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='兼岗';
|
||||
|
||||
-- org_contract_company
|
||||
CREATE TABLE IF NOT EXISTS `org_contract_company` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`company_code` VARCHAR(32) NOT NULL COMMENT '公司编码',
|
||||
`company_name` VARCHAR(128) NOT NULL COMMENT '公司名称',
|
||||
`credit_code` VARCHAR(32) COMMENT '统一社会信用代码',
|
||||
`legal_person` VARCHAR(64) COMMENT '法人',
|
||||
`contact_info` VARCHAR(128) COMMENT '联系方式',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_company_code` (`company_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同公司';
|
||||
|
||||
-- org_entry
|
||||
CREATE TABLE IF NOT EXISTS `org_entry` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`employee_id` VARCHAR(32) COMMENT '员工档案(可空,待入职)',
|
||||
`name` VARCHAR(64) NOT NULL COMMENT '姓名',
|
||||
`id_type` VARCHAR(16) DEFAULT 'id_card' COMMENT '证件类型(字典ID_TYPE)',
|
||||
`id_number_cipher` VARCHAR(256) COMMENT '证件号密文【敏感:sensitive,落库加密/脱敏展示】',
|
||||
`id_number_hash` VARCHAR(64) COMMENT '证件号哈希【敏感:sensitive,落库加密/脱敏展示】',
|
||||
`id_valid_from` DATE COMMENT '证件有效期起',
|
||||
`id_valid_to` DATE COMMENT '证件有效期止(长期=9999-12-31)',
|
||||
`id_authority` VARCHAR(128) COMMENT '证件签发机关',
|
||||
`id_source` VARCHAR(16) DEFAULT 'manual' COMMENT '证件信息来源(字典ID_SOURCE,D1手工录入)',
|
||||
`employee_type` VARCHAR(16) COMMENT '员工类型(字典EMP_TYPE)',
|
||||
`org_id` VARCHAR(32) COMMENT '入职组织',
|
||||
`position_id` VARCHAR(32) COMMENT '职位',
|
||||
`company_id` VARCHAR(32) COMMENT '合同公司',
|
||||
`work_location` VARCHAR(128) COMMENT '办公地点',
|
||||
`hire_date` DATE COMMENT '入职日期',
|
||||
`entry_status` VARCHAR(24) DEFAULT 'pending_approval' COMMENT '入职状态(字典ENTRY_STATUS)',
|
||||
`is_rehire` INT DEFAULT 0 COMMENT '是否复职(0/1)',
|
||||
`register_status` VARCHAR(16) DEFAULT 'none' COMMENT '登记表状态(none/invited/filled)',
|
||||
`register_token` VARCHAR(64) COMMENT '登记表token(扫码入职降级)',
|
||||
`register_url` VARCHAR(256) COMMENT '登记表链接',
|
||||
`qrcode_file` VARCHAR(64) COMMENT '登记二维码图片(文件ID)',
|
||||
`register_expire` TIMESTAMP NULL DEFAULT NULL COMMENT '登记链接过期时间',
|
||||
`flow_instance_id` VARCHAR(32) COMMENT '流程实例',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_entry_status` (`entry_status`),
|
||||
KEY `idx_hire_date` (`hire_date`),
|
||||
KEY `idx_flow_instance_id` (`flow_instance_id`),
|
||||
UNIQUE KEY `uk_register_token` (`register_token`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='入职记录';
|
||||
|
||||
-- org_field_def
|
||||
CREATE TABLE IF NOT EXISTS `org_field_def` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`field_code` VARCHAR(64) NOT NULL COMMENT '字段编码',
|
||||
`field_name` VARCHAR(64) NOT NULL COMMENT '字段名称',
|
||||
`field_type` VARCHAR(16) COMMENT '字段类型(text/number/date/select/file)',
|
||||
`options_json` TEXT COMMENT '选项定义JSON',
|
||||
`required` INT DEFAULT 0 COMMENT '是否必填(0/1)',
|
||||
`sort_no` INT DEFAULT 0 COMMENT '排序号',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_field_code` (`field_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织自定义字段定义';
|
||||
|
||||
-- org_field_value
|
||||
CREATE TABLE IF NOT EXISTS `org_field_value` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`org_id` VARCHAR(32) NOT NULL COMMENT '组织',
|
||||
`field_id` VARCHAR(32) NOT NULL COMMENT '字段定义',
|
||||
`value_text` TEXT COMMENT '文本值',
|
||||
`value_date` DATE COMMENT '日期值',
|
||||
`value_file` VARCHAR(64) COMMENT '附件值(文件ID)',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_org_field` (`org_id`,`field_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织字段值(EAV)';
|
||||
|
||||
-- org_grade_level
|
||||
CREATE TABLE IF NOT EXISTS `org_grade_level` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`level_code` VARCHAR(32) NOT NULL COMMENT '职级编码',
|
||||
`level_name` VARCHAR(64) NOT NULL COMMENT '职级名称',
|
||||
`level_category` VARCHAR(32) COMMENT '职级类别',
|
||||
`start_rank_id` VARCHAR(32) COMMENT '起始职等',
|
||||
`end_rank_id` VARCHAR(32) COMMENT '结束职等',
|
||||
`sort_no` INT DEFAULT 0 COMMENT '排序号',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_level_code` (`level_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='职级';
|
||||
|
||||
-- org_grade_rank
|
||||
CREATE TABLE IF NOT EXISTS `org_grade_rank` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`rank_code` VARCHAR(32) NOT NULL COMMENT '职等编码',
|
||||
`rank_name` VARCHAR(64) NOT NULL COMMENT '职等名称',
|
||||
`rank_level` INT COMMENT '职等层级',
|
||||
`sort_no` INT DEFAULT 0 COMMENT '排序号',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_rank_code` (`rank_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='职等';
|
||||
|
||||
-- org_headcount_scheme
|
||||
CREATE TABLE IF NOT EXISTS `org_headcount_scheme` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`scheme_name` VARCHAR(128) NOT NULL COMMENT '方案名称',
|
||||
`cycle_type` VARCHAR(16) NOT NULL COMMENT '周期(字典HEADCOUNT_CYCLE: year/quarter/month)',
|
||||
`cycle_start` DATE NOT NULL COMMENT '周期起',
|
||||
`cycle_end` DATE NOT NULL COMMENT '周期止',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_cycle` (`cycle_start`,`cycle_end`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='编制方案(F16)';
|
||||
|
||||
-- org_job
|
||||
CREATE TABLE IF NOT EXISTS `org_job` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`job_code` VARCHAR(32) NOT NULL COMMENT '职务编码',
|
||||
`job_name` VARCHAR(64) NOT NULL COMMENT '职务名称',
|
||||
`job_category` VARCHAR(16) NOT NULL DEFAULT 'vertical' COMMENT '职务类别(vertical/horizontal,F17)',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`sort_no` INT DEFAULT 0 COMMENT '排序号',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_job_code` (`job_code`),
|
||||
KEY `idx_job_category` (`job_category`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='职务(含F17横向职务)';
|
||||
|
||||
-- org_leave
|
||||
CREATE TABLE IF NOT EXISTS `org_leave` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`employee_id` VARCHAR(32) COMMENT '员工档案',
|
||||
`leave_type` VARCHAR(24) COMMENT '离职类型(辞职/劝退/合同到期/退休)',
|
||||
`leave_reason` VARCHAR(32) COMMENT '离职原因(字典LEAVE_REASON)',
|
||||
`leave_date` DATE COMMENT '离职日期',
|
||||
`apply_type` VARCHAR(16) COMMENT '申请方式(self/proxy/manual)',
|
||||
`status` VARCHAR(16) DEFAULT 'pending_leave' COMMENT '状态(pending_leave/left/cancelled)',
|
||||
`handover_status` VARCHAR(16) DEFAULT 'pending' COMMENT '交接状态(pending/done)',
|
||||
`certificate_file` VARCHAR(64) COMMENT '离职证明文件ID',
|
||||
`blacklist_flag` INT DEFAULT 0 COMMENT '是否加入黑名单(0/1)',
|
||||
`flow_instance_id` VARCHAR(32) COMMENT '流程实例',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_employee_id` (`employee_id`),
|
||||
KEY `idx_status` (`status`),
|
||||
KEY `idx_leave_date` (`leave_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='离职记录';
|
||||
|
||||
-- org_leave_handover
|
||||
CREATE TABLE IF NOT EXISTS `org_leave_handover` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`leave_id` VARCHAR(32) COMMENT '离职记录',
|
||||
`item_type` VARCHAR(32) COMMENT '交接项类型(字典HANDOVER_TYPE,含dingtalk_resource占位D3)',
|
||||
`item_content` TEXT COMMENT '交接内容',
|
||||
`handover_to_id` VARCHAR(32) COMMENT '交接人',
|
||||
`status` VARCHAR(16) DEFAULT 'pending' COMMENT '状态(pending/done)',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_leave_id` (`leave_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='离职交接项';
|
||||
|
||||
-- org_position
|
||||
CREATE TABLE IF NOT EXISTS `org_position` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`position_code` VARCHAR(32) NOT NULL COMMENT '职位编码',
|
||||
`position_name` VARCHAR(64) NOT NULL COMMENT '职位名称',
|
||||
`job_id` VARCHAR(32) COMMENT '职务',
|
||||
`sequence_id` VARCHAR(32) COMMENT '序列',
|
||||
`category` VARCHAR(16) COMMENT '职位类别(字典POS_CATEGORY)',
|
||||
`dept_ids` VARCHAR(512) COMMENT '适用部门(多值,逗号分隔)',
|
||||
`description` TEXT COMMENT '职位描述',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`sort_no` INT DEFAULT 0 COMMENT '排序号',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_position_code` (`position_code`),
|
||||
KEY `idx_job_id` (`job_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='职位';
|
||||
|
||||
-- org_project
|
||||
CREATE TABLE IF NOT EXISTS `org_project` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`project_code` VARCHAR(32) NOT NULL COMMENT '项目编码',
|
||||
`project_name` VARCHAR(128) NOT NULL COMMENT '项目名称',
|
||||
`parent_id` VARCHAR(32) COMMENT '上级项目(自引用多层级)',
|
||||
`owner_id` VARCHAR(32) COMMENT '负责人',
|
||||
`start_date` DATE COMMENT '开始日期',
|
||||
`end_date` DATE COMMENT '结束日期',
|
||||
`project_status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '项目状态(字典PROJECT_STATUS)',
|
||||
`attrs_json` TEXT COMMENT '项目属性',
|
||||
`sort_no` INT DEFAULT 0 COMMENT '排序号',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_project_code` (`project_code`),
|
||||
KEY `idx_parent_id` (`parent_id`),
|
||||
KEY `idx_project_status` (`project_status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目式组织(F17)';
|
||||
|
||||
-- org_project_post
|
||||
CREATE TABLE IF NOT EXISTS `org_project_post` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`project_id` VARCHAR(32) NOT NULL COMMENT '项目组织',
|
||||
`employee_id` VARCHAR(32) NOT NULL COMMENT '员工',
|
||||
`job_id` VARCHAR(32) COMMENT '横向职务(org_job.job_category=horizontal)',
|
||||
`start_date` DATE COMMENT '开始日期',
|
||||
`end_date` DATE COMMENT '结束日期',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/expired',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_proj_emp_job` (`project_id`,`employee_id`,`job_id`,`start_date`),
|
||||
KEY `idx_employee_id` (`employee_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目任职(F17横向)';
|
||||
|
||||
-- org_regularization
|
||||
CREATE TABLE IF NOT EXISTS `org_regularization` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`employee_id` VARCHAR(32) COMMENT '员工档案',
|
||||
`probation_end_date` DATE COMMENT '试用期止(预计转正日)',
|
||||
`regular_date` DATE COMMENT '转正日期',
|
||||
`apply_type` VARCHAR(16) COMMENT '申请方式(self/proxy/manual)',
|
||||
`status` VARCHAR(16) DEFAULT 'pending' COMMENT '状态(pending/approved/rejected/cancelled)',
|
||||
`flow_instance_id` VARCHAR(32) COMMENT '流程实例',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_employee_id` (`employee_id`),
|
||||
KEY `idx_regular_date` (`regular_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='转正记录';
|
||||
|
||||
-- org_sequence
|
||||
CREATE TABLE IF NOT EXISTS `org_sequence` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`seq_category` VARCHAR(32) COMMENT '序列类别',
|
||||
`seq_name` VARCHAR(64) NOT NULL COMMENT '序列名称',
|
||||
`grade_level_ids` VARCHAR(512) COMMENT '关联职级类别(多值,逗号分隔)',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='序列';
|
||||
|
||||
-- org_transfer
|
||||
CREATE TABLE IF NOT EXISTS `org_transfer` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`transfer_type` VARCHAR(24) COMMENT '调动类型(字典TRANSFER_TYPE)',
|
||||
`status` VARCHAR(16) DEFAULT 'pending' COMMENT '状态(pending/confirmed/cancelled)',
|
||||
`effective_date` DATE COMMENT '生效日期',
|
||||
`batch_no` VARCHAR(32) COMMENT '批次号',
|
||||
`flow_instance_id` VARCHAR(32) COMMENT '流程实例',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_status` (`status`),
|
||||
KEY `idx_effective_date` (`effective_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='调动单(支持批量)';
|
||||
|
||||
-- org_transfer_detail
|
||||
CREATE TABLE IF NOT EXISTS `org_transfer_detail` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`transfer_id` VARCHAR(32) COMMENT '调动单',
|
||||
`employee_id` VARCHAR(32) COMMENT '员工档案',
|
||||
`from_org_id` VARCHAR(32) COMMENT '原组织',
|
||||
`to_org_id` VARCHAR(32) COMMENT '新组织',
|
||||
`from_position_id` VARCHAR(32) COMMENT '原职位',
|
||||
`to_position_id` VARCHAR(32) COMMENT '新职位',
|
||||
`from_grade_level_id` VARCHAR(32) COMMENT '原职级',
|
||||
`to_grade_level_id` VARCHAR(32) COMMENT '新职级',
|
||||
`status` VARCHAR(16) DEFAULT 'pending' COMMENT '状态(pending/done/cancelled)',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_transfer_id` (`transfer_id`),
|
||||
KEY `idx_employee_id` (`employee_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='调动明细(逐人)';
|
||||
|
||||
-- org_unit
|
||||
CREATE TABLE IF NOT EXISTS `org_unit` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`org_code` VARCHAR(32) NOT NULL COMMENT '组织编码',
|
||||
`org_name` VARCHAR(128) NOT NULL COMMENT '组织名称',
|
||||
`parent_id` VARCHAR(32) COMMENT '上级组织(自引用)',
|
||||
`org_type` VARCHAR(16) COMMENT '组织类型(字典ORG_TYPE)',
|
||||
`leader_id` VARCHAR(32) COMMENT '负责人',
|
||||
`effective_date` DATE COMMENT '生效日期',
|
||||
`expire_date` DATE COMMENT '失效日期(空=长期)',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`sort_no` INT DEFAULT 0 COMMENT '排序号',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_org_code` (`org_code`),
|
||||
KEY `idx_parent_id` (`parent_id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织';
|
||||
|
||||
-- org_unit_change
|
||||
CREATE TABLE IF NOT EXISTS `org_unit_change` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`org_id` VARCHAR(32) COMMENT '组织',
|
||||
`change_type` VARCHAR(16) COMMENT '变更类型(add/edit/disable/move/split/merge/delete)',
|
||||
`before_json` TEXT COMMENT '变更前快照',
|
||||
`after_json` TEXT COMMENT '变更后快照',
|
||||
`effective_date` DATE COMMENT '生效日期',
|
||||
`operator_id` VARCHAR(32) COMMENT '操作人',
|
||||
`flow_instance_id` VARCHAR(32) COMMENT '流程实例',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_org_id` (`org_id`),
|
||||
KEY `idx_created_at` (`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织变更时间轴';
|
||||
|
||||
-- ===== hr_roster(7 张)=====
|
||||
-- roster_employee
|
||||
CREATE TABLE IF NOT EXISTS `roster_employee` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`employee_no` VARCHAR(32) NOT NULL COMMENT '工号',
|
||||
`name` VARCHAR(64) NOT NULL COMMENT '姓名',
|
||||
`gender` VARCHAR(16) COMMENT '性别(字典GENDER)',
|
||||
`id_type` VARCHAR(16) DEFAULT 'id_card' COMMENT '证件类型',
|
||||
`id_number_cipher` VARCHAR(256) COMMENT '证件号密文(敏感)【敏感:sensitive,落库加密/脱敏展示】',
|
||||
`id_number_hash` VARCHAR(64) COMMENT '证件号哈希(确定性,唯一/黑名单匹配)【敏感:sensitive,落库加密/脱敏展示】',
|
||||
`id_valid_from` DATE COMMENT '证件有效期起',
|
||||
`id_valid_to` DATE COMMENT '证件有效期止(长期=9999-12-31)',
|
||||
`id_authority` VARCHAR(128) COMMENT '证件签发机关',
|
||||
`id_source` VARCHAR(16) DEFAULT 'manual' COMMENT '证件信息来源(字典ID_SOURCE)',
|
||||
`birthday` DATE COMMENT '出生日期',
|
||||
`phone` VARCHAR(20) COMMENT '手机号(明文存储,按角色脱敏)【敏感:sensitive,落库加密/脱敏展示】',
|
||||
`email` VARCHAR(128) COMMENT '邮箱',
|
||||
`org_id` VARCHAR(32) COMMENT '组织',
|
||||
`position_id` VARCHAR(32) COMMENT '职位',
|
||||
`job_id` VARCHAR(32) COMMENT '职务',
|
||||
`grade_level_id` VARCHAR(32) COMMENT '职级',
|
||||
`grade_rank_id` VARCHAR(32) COMMENT '职等',
|
||||
`sequence_id` VARCHAR(32) COMMENT '序列',
|
||||
`employee_type` VARCHAR(16) COMMENT '员工类型(字典EMP_TYPE)',
|
||||
`employee_status` VARCHAR(16) COMMENT '员工状态(字典EMP_STATUS)',
|
||||
`hire_date` DATE COMMENT '入职日期',
|
||||
`probation_end_date` DATE COMMENT '试用期止(预计转正日)',
|
||||
`regular_date` DATE COMMENT '转正日期',
|
||||
`leave_date` DATE COMMENT '离职日期',
|
||||
`company_id` VARCHAR(32) COMMENT '合同公司',
|
||||
`work_location` VARCHAR(128) COMMENT '办公地点',
|
||||
`direct_leader_id` VARCHAR(32) COMMENT '直属主管',
|
||||
`prev_employee_id` VARCHAR(32) COMMENT '复职关联原档案ID',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_employee_no` (`employee_no`),
|
||||
UNIQUE KEY `uk_id_number_hash` (`id_number_hash`),
|
||||
KEY `idx_org_id` (`org_id`),
|
||||
KEY `idx_status` (`employee_status`),
|
||||
KEY `idx_hire_date` (`hire_date`),
|
||||
KEY `idx_probation_end` (`probation_end_date`),
|
||||
KEY `idx_direct_leader` (`direct_leader_id`),
|
||||
KEY `idx_prev_employee` (`prev_employee_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工主档';
|
||||
|
||||
-- roster_empno_rule
|
||||
CREATE TABLE IF NOT EXISTS `roster_empno_rule` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`rule_name` VARCHAR(64) NOT NULL COMMENT '规则名称',
|
||||
`prefix` VARCHAR(16) COMMENT '工号前缀',
|
||||
`match_field` VARCHAR(32) COMMENT '匹配字段(如company_id)',
|
||||
`match_value` VARCHAR(64) COMMENT '匹配值',
|
||||
`seq_length` INT DEFAULT 4 COMMENT '流水号长度',
|
||||
`current_seq` INT DEFAULT 0 COMMENT '当前流水号',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工号规则';
|
||||
|
||||
-- roster_field_def
|
||||
CREATE TABLE IF NOT EXISTS `roster_field_def` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`group_id` VARCHAR(32) COMMENT '字段分组',
|
||||
`field_code` VARCHAR(64) NOT NULL COMMENT '字段编码',
|
||||
`field_name` VARCHAR(64) NOT NULL COMMENT '字段名称',
|
||||
`field_type` VARCHAR(16) COMMENT '字段类型(text/number/date/select/multiselect/file)',
|
||||
`options_json` TEXT COMMENT '选项定义(字典code或自定义项)',
|
||||
`required` INT DEFAULT 0 COMMENT '是否必填(0/1)',
|
||||
`sensitive` INT DEFAULT 0 COMMENT '是否敏感(0/1,驱动脱敏与可见性)',
|
||||
`editable_self` INT DEFAULT 0 COMMENT '员工自助可编辑(0/1)',
|
||||
`need_audit` INT DEFAULT 0 COMMENT '自助修改需审核(0/1)',
|
||||
`apply_types` TEXT COMMENT '适用员工类型JSON',
|
||||
`sort_no` INT DEFAULT 0 COMMENT '排序号',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_field_code` (`field_code`),
|
||||
KEY `idx_group_id` (`group_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='花名册字段定义';
|
||||
|
||||
-- roster_field_group
|
||||
CREATE TABLE IF NOT EXISTS `roster_field_group` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`group_code` VARCHAR(32) NOT NULL COMMENT '分组编码',
|
||||
`group_name` VARCHAR(64) NOT NULL COMMENT '分组名称(工作信息/个人信息/绩效结果/培训记录)',
|
||||
`sort_no` INT DEFAULT 0 COMMENT '排序号',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_group_code` (`group_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='花名册字段分组';
|
||||
|
||||
-- roster_field_value
|
||||
CREATE TABLE IF NOT EXISTS `roster_field_value` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`employee_id` VARCHAR(32) NOT NULL COMMENT '员工档案',
|
||||
`field_id` VARCHAR(32) NOT NULL COMMENT '字段定义',
|
||||
`value_text` TEXT COMMENT '文本值',
|
||||
`value_number` DECIMAL(18,4) COMMENT '数值',
|
||||
`value_date` DATE COMMENT '日期值',
|
||||
`value_file` VARCHAR(64) COMMENT '附件值(文件ID)',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_employee_field` (`employee_id`,`field_id`),
|
||||
KEY `idx_field_id` (`field_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='花名册字段值(EAV)';
|
||||
|
||||
-- roster_timeline
|
||||
CREATE TABLE IF NOT EXISTS `roster_timeline` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`employee_id` VARCHAR(32) COMMENT '员工档案',
|
||||
`event_type` VARCHAR(24) COMMENT '事件类型(entry/regular/transfer/leave/concurrent/contract/field_change/headcount/project/migrate)',
|
||||
`event_date` DATE COMMENT '事件日期',
|
||||
`title` VARCHAR(128) COMMENT '标题',
|
||||
`content_json` TEXT COMMENT '内容JSON',
|
||||
`source_type` VARCHAR(32) COMMENT '来源类型',
|
||||
`source_id` VARCHAR(32) COMMENT '来源ID',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_emp_date` (`employee_id`,`event_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工时间轴';
|
||||
|
||||
-- roster_type_rule
|
||||
CREATE TABLE IF NOT EXISTS `roster_type_rule` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`employee_type` VARCHAR(16) NOT NULL COMMENT '员工类型(字典EMP_TYPE)',
|
||||
`field_rules_json` TEXT COMMENT '按类型必填/隐藏字段规则',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_employee_type` (`employee_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工类型字段规则';
|
||||
|
||||
-- ===== hr_system(8 张)=====
|
||||
-- sys_announcement
|
||||
CREATE TABLE IF NOT EXISTS `sys_announcement` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`title` VARCHAR(256) NOT NULL COMMENT '标题',
|
||||
`content` TEXT COMMENT '内容',
|
||||
`publish_scope_json` TEXT COMMENT '发布范围',
|
||||
`publish_time` TIMESTAMP NULL DEFAULT NULL COMMENT '发布时间',
|
||||
`status` VARCHAR(16) DEFAULT 'draft' COMMENT '状态(draft/published/offline)',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='企业公告(F15)';
|
||||
|
||||
-- sys_audit_log
|
||||
CREATE TABLE IF NOT EXISTS `sys_audit_log` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`module` VARCHAR(32) NOT NULL COMMENT '模块(hr-org/hr-roster/...)',
|
||||
`target_type` VARCHAR(32) NOT NULL COMMENT '对象类型(roster_employee/org_unit/...)',
|
||||
`target_id` VARCHAR(32) NOT NULL COMMENT '对象ID',
|
||||
`operation` VARCHAR(16) NOT NULL COMMENT '操作类型(字典AUDIT_OP)',
|
||||
`operator_id` VARCHAR(32) NOT NULL COMMENT '操作人',
|
||||
`operator_name` VARCHAR(64) DEFAULT '' COMMENT '操作人姓名',
|
||||
`before_json` TEXT COMMENT '变更前快照',
|
||||
`after_json` TEXT COMMENT '变更后快照',
|
||||
`request_ip` VARCHAR(64) COMMENT '请求IP',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_target` (`target_type`,`target_id`),
|
||||
KEY `idx_operator` (`operator_id`),
|
||||
KEY `idx_created_at` (`created_at`),
|
||||
KEY `idx_module_op` (`module`,`operation`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志(只增,F12)';
|
||||
|
||||
-- sys_care_config
|
||||
CREATE TABLE IF NOT EXISTS `sys_care_config` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`care_type` VARCHAR(16) NOT NULL COMMENT '关怀类型(birthday/anniversary)',
|
||||
`template` TEXT COMMENT '文案模板',
|
||||
`enable` INT DEFAULT 1 COMMENT '启用(0/1)',
|
||||
`push_target` VARCHAR(16) DEFAULT 'employee' COMMENT '推送对象(employee/leader)',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_care_type` (`care_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='关怀配置(生日/周年,F15)';
|
||||
|
||||
-- sys_data_scope
|
||||
CREATE TABLE IF NOT EXISTS `sys_data_scope` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`admin_user_id` VARCHAR(32) COMMENT '管理员用户',
|
||||
`scope_type` VARCHAR(16) COMMENT '范围类型(org/field)',
|
||||
`org_ids_json` TEXT COMMENT '组织维度(含子树)',
|
||||
`field_ids_json` TEXT COMMENT '花名册字段维度',
|
||||
`remark` TEXT COMMENT '备注',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_admin_user` (`admin_user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='数据范围(F11)';
|
||||
|
||||
-- sys_message
|
||||
CREATE TABLE IF NOT EXISTS `sys_message` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`receiver_id` VARCHAR(32) COMMENT '接收人',
|
||||
`msg_type` VARCHAR(16) COMMENT '消息类型(todo/approval/remind/care/notice)',
|
||||
`title` VARCHAR(256) COMMENT '标题',
|
||||
`content` TEXT COMMENT '内容',
|
||||
`biz_type` VARCHAR(32) COMMENT '业务类型',
|
||||
`biz_id` VARCHAR(32) COMMENT '业务ID',
|
||||
`send_channel` VARCHAR(16) DEFAULT 'site' COMMENT '发送渠道(字典MSG_CHANNEL,一期仅site;D9)',
|
||||
`is_read` INT DEFAULT 0 COMMENT '是否已读(0/1)',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_receiver_read` (`receiver_id`,`is_read`),
|
||||
KEY `idx_created_at` (`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站内消息(F15)';
|
||||
|
||||
-- sys_openapp
|
||||
CREATE TABLE IF NOT EXISTS `sys_openapp` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`app_key` VARCHAR(64) NOT NULL COMMENT '应用Key',
|
||||
`app_secret_cipher` VARCHAR(256) COMMENT '应用密钥密文【敏感:sensitive,落库加密/脱敏展示】',
|
||||
`app_name` VARCHAR(128) COMMENT '应用名称',
|
||||
`scope_json` TEXT COMMENT '授权资源范围',
|
||||
`rate_limit` INT DEFAULT 10 COMMENT '限流(req/s,默认10)',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_app_key` (`app_key`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='API开放应用(一期预留,FEAT-B1-01⑦)';
|
||||
|
||||
-- sys_policy
|
||||
CREATE TABLE IF NOT EXISTS `sys_policy` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`title` VARCHAR(256) NOT NULL COMMENT '标题',
|
||||
`file_path` VARCHAR(256) COMMENT '政策文件(文件ID)',
|
||||
`view_scope_json` TEXT COMMENT '查阅范围',
|
||||
`downloadable` INT DEFAULT 0 COMMENT '允许下载(0/1)',
|
||||
`publish_time` TIMESTAMP NULL DEFAULT NULL COMMENT '发布时间',
|
||||
`status` VARCHAR(16) DEFAULT 'draft' COMMENT '状态(draft/published/offline)',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='企业政策(F15)';
|
||||
|
||||
-- sys_remind_rule
|
||||
CREATE TABLE IF NOT EXISTS `sys_remind_rule` (
|
||||
`id` VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
`scene_code` VARCHAR(32) NOT NULL COMMENT '提醒场景(字典REMIND_SCENE,≥6类)',
|
||||
`rule_name` VARCHAR(64) NOT NULL COMMENT '规则名称',
|
||||
`days_before` INT DEFAULT 7 COMMENT '提前天数',
|
||||
`content_template` TEXT COMMENT '提醒内容模板',
|
||||
`target_role` VARCHAR(16) DEFAULT 'admin' COMMENT '提醒对象(admin/employee/leader)',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
||||
`created_by` VARCHAR(32) COMMENT '创建人',
|
||||
`updated_by` VARCHAR(32) COMMENT '更新人',
|
||||
`created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_scene_rule` (`scene_code`,`rule_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通用提醒规则(F15)';
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
-- 共 49 张表
|
||||
Loading…
x
Reference in New Issue
Block a user