### 数据说明 ``` 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 } ] } ```