def_funcid.md 8.8 KB

数据说明

1.信息点定义,用于描述类型的属性
2.默认每个类型都有id、name、localId、localName、objType、classCode、projectId,无需订阅,也不能取消订阅


数据结构

字段 数据类型 查询字段 说明
code String Y 信息点编码,同类型下唯一
name String Y 信息点名称
aliasCode String Y 信息点别编码,同类型下唯一
aliasName String Y 信息点别名
classCode String Y 类型编码
type String Y 字典级别:平台级 common,集团级 group,项目级 project
category String Y 信息点分类:静态,脉冲,阶段,时序
groupCode String Y 集团 id, type=group 或 type=project 时该字段为集团 id,否则为"0"
projectId String Y 集团 id, type=project 时该字段为项目 id,否则为"0"
firstTag String Y 一级标签
secondTag String Y 二级标签
priority String 优先级
inputMode String 输入方式
unit String 单位
dataType String Y 数据类型
isMultiple Boolean 是否复数
isRegion Boolean 是否区间
formater String 数据格式
dataSource Object[] 数据源取值范围/枚举值清单等,根据 dataType 有不同的内容
note String 备注
subFlag String Y 子分类标记:是否可以按此信息点进行子分类替换,同一类型下目前只支持一个子分类信息点

数据类型

数据类型 类型名称 信息点分类 是否复数 是否区间 数据源 格式
INTEGER 整数 静态/脉冲/时序/阶段 true/false true/false {$gt:10, $lt:50}
DOUBLE 浮点型 静态/脉冲/时序/阶段 true/false true/false {$gte:10.1, $lt:50.9}
BOOLEAN 布尔值 静态/脉冲/时序/阶段 true/false false [0, 1]
STRING 字符串 静态/脉冲/时序/阶段 true/false false (字符串长度区间){$gt:10, $lt:50}
DATETIME 日期时间 静态/脉冲/时序/阶段 true/false true/false {'$gt':'0915', '$lt':'1031'} 'MMdd'
ENUM 单选枚举 静态/脉冲/时序/阶段 true/false false 应用数据标准化中定义的数据类型
MENUM 多选枚举 静态/脉冲/时序/阶段 true/false false 应用数据标准化中定义的数据类型
ATTACHMENT 附件 静态 true/false false pdf
OBJECT 对象 静态 true/false false 对象 id

说明

把原来的data_type拆解成多个属性,减少了data_type种类数量
使用新的数据类型时,使用新的数据类型时,创建或编辑信息点需要明确指出数据类型、动静分类、是否复数、是否区间、长度(可选)、取值区间(可选)、格式(可选)
Tree、Topology、Route、Function四种类型不再支持(有需求再加回来)

动静分类(静态 STATIC、脉冲 PULSE、时序 SEQUENTIAL、阶段 GRADATION)应该是信息点的一个分类,不是数据类型的属性,放在这里是为了更直观更容易理解
根据动静分类区分动态量或静态量,静态量的值存储的是具体的数据,动态量的值存储的是表号-功能号,动态量包括脉冲量、时序量和阶段量
根据是否区间来判断存储的值是具体值还是区间, 比如INTEGER非区间的值12, 区间值[8, 15],为了区分开闭区间,这里实际存储为{$gt: 12, $lte: 15}, 其中$gt大于,$lt小于,$gte大于等于,$lte小于等于
根据是否复数区分存储的值是单个值还是多个值,单个值存储形式为xxx,多个值存储形式为[xxx, yyy],如果同时是复数和区间,存储的是多个区间
取值区间可以约束值的取值范围,可以通过取值区间做一次校验,如果是区间值,区间也应该是在取值区间的内部
统一用DATETIME表示日期和时间,通过格式设定具体存储的内容,格式由数据字典进行维护,物理世界存储的数据严格符合格式
格式是数据存储的数据格式或文件格式,对于日期时间附件对象等可进行校验
单选枚举Enum单数存储为GC, 复数存储为[GC, JK]
多选枚举MEnum单数存储为[GC, JK], 复数存储为[[GC], [GC,JK]], 多选枚举单数和单选枚举复数的存储形式一样应该不会出现问题,因为实际使用时是和类型(Enum,Menum)一起使用

布尔值BOOLEAN只允许0或1, 其中0表示false,1表示true.

查询接口

接口说明

1.若集团编码、方案id、项目id全部为空,则返回(符合查询条件的)平台级字典定义的数据
2.若集团编码不为空,则返回集团级字典定义的数据
3.若集团方案id不为空,则返回集团方案订阅的数据
4.若项目id不为空,则返回项目级字典定义的数据
5.若应用id不为空,则返回应用订阅的数据
6.查询应带上classCode字段
7.不支持分页
8.如果平台级、集团级、项目级均有相同code对应的信息点数据,则按优先级顺序(项目级 > 集团级 > 平台级)返回高优先级的数据
9.该接口已处理平台级、集团级、项目级三级字典逻辑,返回数据中type、groupCode、projectId三个字段可以忽略

请求方式

POST /rwd/def/funcid?groupCode=集团编码&schemeId=方案id&projectId=项目id&appId=应用id

路径参数说明

字段 数据类型 说明
groupCode String 集团编码
schemeId String 方案 id
projectId String 项目 id
appId String 应用 id, 若应用不为空则必须项目 id 同时不为空

请求体

{
    "criteria": {
        "classCode": "ACATAH",
        "category": "STATIC"
    }
}

返回数据

{
    "result": "success",
    "data": [
        {
            "id": "29bdf24e030d47cdb05cfde4c8028d59",
            "code": "isFanGear",
            "origCode": "isFanGear",
            "name": "风机有无档位选项",
            "aliasCode": "isFanGear",
            "aliasName": "风机有无档位选项",
            "classCode": "ACATFC",
            "category": "STATIC",
            "type": "common",
            "groupCode": "0",
            "projectId": "0",
            "firstTag": "技术参数",
            "secondTag": "风机",
            "priority": "S",
            "inputMode": "E1",
            "dataType": "BOOLEAN",
            "origDataType": "Bool",
            "isMultiple": false,
            "isRegion": false,
            "subFlag": false,
            "weakPoint": false
        }
    ]
}