更新 knowledge.md

This commit is contained in:
oyo
2025-10-19 17:57:24 +08:00
parent 9042527142
commit c50bb46f20

View File

@@ -353,7 +353,7 @@ meeting_with_room_dto无uuid为待创建DTO。meeting_base_dto和meeting_room
}
}
```
- **JSON结构描述:** VO用json结构表示用于理解含义或作为创建、更新VO工具参数。字段含义expandList为正向替换reverseExpandList为反向注入extendFieldList为来自派生源DTO的字段customFieldList为自定义字段。expandList中foreignKeyInThisEntity为本表外键字段名voFieldName为替换后字段名reverseExpandList中foreignKeyInOtherEntity为他表外键字段名voFieldName为注入后字段名customFieldList中uuid为自定义字段UUID创建时不填更新时需传入定位typeUuid为类结构UUIDtype为List且innerType=Enum、Eo时包含extendFieldList中name为派生源dto中的字段名若DTO字段非DTO类型则VO字段类型与DTO一致若DTO字段为DTO或List<DTO>类型由于VO字段不能为DTO**必须**将DTO转换为VO所以extendFieldList会有**vo结构**表示该字段DTO类型派生出的VO定义注意该VO字段中的VO类型必须派生自继承的DTO字段类型
- **JSON结构描述:** VO用json结构表示用于理解含义或作为创建、更新VO工具参数。字段含义expandList为正向替换reverseExpandList为反向注入extendFieldList为来自派生源DTO的字段customFieldList为自定义字段。expandList中foreignKeyInThisEntity为本表外键字段名voFieldName为替换后字段名reverseExpandList中foreignKeyInOtherEntity为他表外键字段名voFieldName为注入后字段名customFieldList中uuid为自定义字段UUID创建时不填更新时需传入定位typeUuid为类结构UUIDtype为List且innerType=Enum、Eo时包含extendFieldList中name为派生源dto中的字段名若DTO字段非DTO类型则VO字段类型与DTO一致若DTO字段为DTO或List<DTO>类型由于VO字段不能为DTO**必须**将DTO转换为VO所以extendFieldList会有**vo结构**表示该字段DTO类型派生出的VO定义注意该VO字段中的VO类型必须派生自继承的DTO字段类型无根VO不包含fromEntity、fromDto、fromDtoUuid字段派生自DTO的VO必包含fromEntity和fromDtoUuid字段
示例系统中存在meeting_detail_dto
```
@@ -701,7 +701,6 @@ meeting_with_room_and_agenda_wo示例
- **排序字段来源**只能来源自根WO(不包括列表WO属性)以及根WO扩展出的非列表属性的WO字段。排序字段是从根节点到当前属性的路径例如ADto包含BDto bDtoBDto有name属性排序字段路径为bDto.name
- 提取需求中的查询信息,以输入的查询对象作为上下文,构建查询语句
- 如有列表属性过滤需求:提取需求中的过滤信息,针对可过滤字段(列表属性)分别创建过滤条件。过滤条件不能使用列表属性作为查询条件属性(不能使用contains语法)。属性字段是从根节点属性到当前属性的路径
- 自定义字段可以添加自定字段对度方案生成产物Qto对象进行扩展 (注意,自定义字段不能用于查询语法, 自定义字段主要用与参数传递)
- **查询语法和过滤语法**
- 基本语法格式:属性名 操作符 变量或常量,变量格式为#变量名;枚举类型常量用单引号包围,例如:'MALE'
- 数值、时间类型属性操作符:!=, ==, >, <, <=, >=, in, notIn, isNullOrNot
@@ -717,7 +716,8 @@ meeting_with_room_and_agenda_wo示例
- 查询条件中的入参可在运行时传入或不传入值不传入值表示该参数相关条件不起作用基于这种动态效果多条件联合查询可优先使用AND
- 使用点号(.)访问当前对象的单值对象类型子属性,可多个点号组合访问嵌套单值对象属性
- 查询条件中的属性必须是当前查询对象的属性或单值对象属性或单值对象子属性
- 注意:带#的参数不能出现在表达式的左侧:例如: query": "patient_id == #patientId AND (appointment_status == #appointmentStatus OR #appointmentStatus isNull)", #appointmentStatus isNull 是错误的语法,因为#appointmentStatus 是参数
- 禁止使用filter语法
- 禁止使用has语法
- 语法定义:使用 lezer 定义了如下语法
<code>
@top Program { expression? }
@@ -804,9 +804,9 @@ meeting_with_room_and_agenda_wo示例
"uuid": {"type":"string","description":"读服务设计元素的uuid创建时不传入在更新的时候必须传入"},
"woId": {"type":"string","description":"查询对象的uuid作为查询服务的上下文创建的时候必须指定更新的时候不传递"},
"description": {"type":"string","description":"描述读方案的功能长度限制在256个字符内"},
"supportCount": {"type":"boolean", "description":"是否需要生成计数接口"},
"supportPagination": {"type":"boolean", "description":"是否需要分页"},
"supportQueryAll":{"type":"boolean","description":"如果不需要分页,一次性返回部数据"},
"generateCountApi": {"type":"boolean", "description":"是否需要生成计数接口"},
"supportPaginate": {"type":"boolean", "description":"是否需要分页"},
"supportUnPage":{"type":"boolean", "description":"如果不需要分页,一次性返回部数据则返回true"},
"supportWaterfall":{"type":"boolean","description":"是否需要瀑布流"},
"query":{"type":"string","description":"查询语句,符合前述语法定义"},
"voOrDtoId":{"type":"string","description":"返回数据对象(VO或DTO)的uuid,创建的时候必须指定,更新的时候不传递"},
@@ -826,40 +826,6 @@ meeting_with_room_and_agenda_wo示例
}
}
},
"customField": {
"type": "array",
"items": {
"type": "object",
"description": "自定义字段名称",
"properties": {
"name": {
"type": "string",
"description": "字段名称英文下划线分割不超过32字符"
},
"uuid": {
"type": "string",
"description": "字段类型为Enum或Eo时必填对应的Enum或Eo标识符"
},
"type": {
"type": "string",
"description": "字段类型String,Integer,Long,Float,Double,Boolean,Date,Eo,Enum,BigDecimal,List"
},
"innerUuid": {
"type": "string",
"description": "当innerType为Eo或Enum时对应的标识符"
},
"innerType": {
"type": "string",
"description": "List元素类型String,Integer,Long,Float,Double,Boolean,Date,Eo,Enum,BigDecimal"
}
},
"required": [
"name",
"type"
]
},
"description": "自定义字段列表"
}
"required":["name","description","query"]
}
},