持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第33天,点击查看活动详情
2、要素/基础数据
2.1 要素维护和查询接口设计分析(企业微信微盘资料)
要素基本字段说明
核心字段
| 要素字段 | 字段名 | 值集相关字段 | 含义 | 注 |
|---|---|---|---|---|
| ELE_SOURCE | 值集表名 | |||
| ELE_EXTENAD_TYPE | 要素扩展方式,区分统一、扩展、租户个性化 | tenant_id/mof_div_code | 当为统一时:只能有租户ID为0的值集 当为租户个性化时:只能有对应租户的值集 当为扩展时:同时有统一和租户值集,所有的租户值集级次都比统一值集的级次高 | |
| BY_YEAR | 是否分年度维护 | fiscal_year | 当分年度维护时,每个年度的值集都是独立的 | |
| IS_ACC_ELEMENT | 是否核算要素 | acct_set_id | 核算要素的值集会维护账套ID | |
| CODE_RULE | 编码规则 | 一级编码长度-二级编码长度-... 如预算单位一级编码是001,二级编码是00101;编码规则就是3-2 |
要素值集字段说明
| 字段 | 字段名 | 字段类型 | 字段说明 |
|---|---|---|---|
| id/ele_id/要素编码_id | id | 基础核心字段 | |
| code/ele_code/要素编码_code | 编码 | 基础核心字段 | |
| name/ele_name/要素编码_name | 名称 | 基础核心字段 | |
| parent_id | 父级ID | 基础核心字段 | |
| tenant_id/mof_div_code | 租户/区划 | 基础核心字段 | |
| is_deleted | 是否删除 | 基础核心字段 | 技术标准要求删除为1,正常为2 |
| level_no/level_num | 级次 | 基础字段 | 1-6 |
| is_leaf | 是否叶子节点 | 基础字段 | 末级节点为1,非末级为0 |
| start_date | 启用时间 | 基础字段 | |
| end_date | 截止时间 | 基础字段 | |
| fiscal_year | 业务年度 | 基础字段 | |
| acct_set_id | 账套ID | 基础字段 | |
| id1-id6 | id扩展字段 | id1为当前要素值对应的一级节点要素值id | |
| code1-code6 | code扩展字段 |
同一要素多种表字段差异
| 要素表名 | GAP_** | ELE_** | BAS_** |
|---|---|---|---|
| 字段名 | id | ele_id | 要素编码_id |
| 字段名 | code | ele_code | 要素编码_code |
| 字段名 | name | ele_name | 要素编码_name |
要素值集查询接口
基本查询条件参数
| 参数 | 参数名 | 参数类型 | 参数说明 |
|---|---|---|---|
| eleCode | 要素编码 | 基础核心参数 | 确定了查询要素 |
| tenant_id | 租户ID | 基础核心参数 | 确定查询哪个租户下的数据 |
| busiyear | 业务年度 | 基础核心参数 | 用于要素的业务年度和起止时间判断 |
| user_id | 用户ID | 基础参数 | 权限过滤时确定用户 |
| menu_id | 功能ID | 基础参数 | 权限过滤时确定功能(间接确定角色) |
| whereObject | 查询条件(对象) | 扩展参数 | 额外的查询拼接条件 |
| whereSql | 查询条件(String) | 扩展参数 | 额外的查询拼接条件 |
| id | 要素值ID | 基础参数 | 查询指定id的要素值(或需要查询子级) |
| ids | id集合或串 | 基础参数 | 查询多个id的要素值集 |
| code | 要素值编码 | 基础参数 | 查询指定编码的要素值 |
其它查询条件参数
| 参数 | 参数名 | 参数说明 |
|---|---|---|
| org_type | 当前用户的机构类型 | 特殊需求,查询用户的机构列表,用于业务系统展示机构树 |
| org_id | 当前用户的所属机构 | |
| tableName | 值集表名 | 未传要素编码,传的值集表名 |
| 支持对查询结果返回字段的限制参数 |
不带权限过滤的要素列表查询逻辑分析
1.根据要素编码查询要素的维护信息(值集表名、要素扩展方式、是否分年度、是否核算要 素、是否缓存)
2.数据查询sql组装
(1) 支持特殊条件,对查询字段个数限制;根据表名对id,code,name添加额外的别名列
(2) 从要素中取配置的值集表,拼到sql中
(3) 判断要素扩展方式,拼接租户条件
(4) 判断是否分年度维护,拼接年度条件或起止时间条件
(5) 判断是否核算要素,拼接账套条件
(6) 拼接额外的数据查询条件
2.2 基础数据维护概要说明
要素
概念
要素也叫基础数据、代码集,有时在日常沟通过程中值集也会被叫做要素。
要素是对一类有相似数据结构的数据的统称。
要素也可以看做是一类数据如何维护的定义。
部分要素是由财政部制定的技术标准中定义的,并对要素的维护提出了很多要求和限制。
租户: 一般情况下指的是财政区划
分租户:是平台做数据维护,保证不同区划之间数据不互通的依据
统一: 部分数据是全省一致的,这部分数据就是统一数据
要素扩展方式
要素扩展方式是要素维护的核心,主要分为:使用标准、租户个性化、标准+扩展。一般通过值集表的TENANT_ID判断。
- 使用标准
所有值集都是统一数据,一般通过值集表的TENANT_ID=0区分
- 租户个性化
所有值集都是租户个性化的,即对其它租户不可见
- 标准+扩展
部分数据是统一数据,部分数据是租户个性化数据,但是扩展的数据不能出现与统一数据同级的情况
常用要素和要素表
常用要素表:ELE_CATALOG(要素的定义表)
核心字段:要素编码、名称、库表名称(ELE_SOURCE)、要素扩展方式/扩展类型(ELE_EXTEND_TYPE)、编码规则(CODE_RULE)
ELE_CATALOG的ELE_SOURCE定义了所有值集维护所存在的物理表:
值集表核心字段:要素值ID、编码、名称、父级ID、是否删除、级次、是否叶子节点
常用要素(常用要素的值集表也是常用表,不同环境可能有所不同):
- 机构类型:Organize_type
- 预算单位:Agency
- 业务处室:MofDep