本轮验证覆盖后端配置保存/合并、代码应用复用现有表单/列表/详情设计器、采购审批列表/详情配置消费和待办字段权限兼容。
| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint 'src/views/app-center/object-designer.[objectCode].vue' src/views/app-center/components/designer/BusinessFlowAppConfigPanel.vue src/views/app-center/components/designer/BusinessDetailDesigner.vue src/views/business/purchase-order-test.vue src/composables/useCodeAppMetadata.js |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check |
无空白错误 |
本轮新增风险点:
taskId 缺失或不完整时,通过 processInstanceId/businessKey/processDefKey/taskDefKey 兜底读取 BPMN formFieldPermissions。readable=false 的字段隐藏;采购审批页顶部详情字段也要遵守节点权限。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/composables/useBusinessTaskFormContext.js src/views/business/purchase-order-test.vue src/composables/useCodeAppMetadata.js |
通过 |
| 前端构建 | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
通过 |
| 后端流程/业务编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-business/forge-business-core,forge-flow/forge-flow-client,forge-flow/forge-flow-server,forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check |
无空白错误 |
/app-center/object/sample_purchase_order/designer?codeApp=1&name=采购申请,确认左侧可见“表单设计”“列表设计”“业务流程配置”。本轮新增风险点:
codeAppMetadata.fields 不能覆盖 Provider 当前字段,必须支持业务代码新增字段自动进入设计器。formDesignerSchema/pageSchema/viewSchema 不能为空,旧空配置应自动补齐到既有“表单设计 / 列表设计 / 详情设置”组件。fields[].formVisible,并被采购新增/编辑/待办表单消费。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint 'src/views/app-center/object-designer.[objectCode].vue' src/views/app-center/components/designer/BusinessDetailDesigner.vue src/views/app-center/components/designer/form-first/formDesignerSchema.js src/composables/useCodeAppMetadata.js src/views/business/purchase-order-test.vue |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| 前端构建 | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
通过 |
| Diff 检查 | git diff --check |
无空白错误 |
本轮新增风险点:
codeAppMetadata。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/app-center/components/designer/BusinessFlowAppConfigPanel.vue 'src/views/app-center/object-designer.[objectCode].vue' src/views/flow/design.vue src/components/flow-designer/panel/ApproverConfig.vue |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator,forge-business/forge-business-core -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check |
无空白错误 |
本轮新增风险点:
pageSchema/formDesignerSchema 被判定可用而没有字段内容。formKey/formUrl/providerKey,同时仍以 Provider 当前字段作为字段基准。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/app-center/components/designer/BusinessCodeAppFormAssetPanel.vue 'src/views/app-center/object-designer.[objectCode].vue' |
通过 |
| 前端构建 | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/views/app-center/components/designer/BusinessCodeAppFormAssetPanel.vue 'forge-admin-ui/src/views/app-center/object-designer.[objectCode].vue' |
无空白错误 |
本轮新增风险点:
BusinessCodeFormProvider Bean,而不是从当前资产草稿里临时拼出来。ai_business_object 占位对象,也没有低代码模型;左侧“表单设计 / 列表设计 / 详情设置”必须从 Provider 字段目录或 providerCatalog 兜底生成字段。providerCatalog 而丢失 codeAppMetadata。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/app-center/components/designer/BusinessCodeAppFormAssetPanel.vue src/views/app-center/components/designer/BusinessFlowAppConfigPanel.vue 'src/views/app-center/object-designer.[objectCode].vue' |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| 前端构建 | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/views/app-center/components/designer/BusinessCodeAppFormAssetPanel.vue forge-admin-ui/src/views/app-center/components/designer/BusinessFlowAppConfigPanel.vue 'forge-admin-ui/src/views/app-center/object-designer.[objectCode].vue' forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessCodeFormProviderRegistry.java forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessFlowService.java forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessFlowAppConfigService.java |
无空白错误 |
本轮新增风险点:
ai_business_object 占位对象,嵌入式设计器不能因为有 objectId 就落回普通低代码 businessObjectDesigner(object.id)。codeApp=1,必须从对象 options/designerOptions 识别代码应用。options.codeAppMetadata 必须写入流程绑定,不能只在“无对象代码应用”分支生效。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint 'src/views/app-center/object-designer.[objectCode].vue' |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| 前端构建 | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
通过 |
| Diff 检查 | git diff --check -- 'forge-admin-ui/src/views/app-center/object-designer.[objectCode].vue' forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessFlowAppConfigService.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
本轮新增风险点:
BusinessFlowService 列表增强只做请求内缓存,不能引入跨请求脏数据。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/flow/utils/processDisplay.js src/views/flow/todo.vue src/views/flow/done.vue src/views/flow/started.vue |
通过 |
| 前端构建 | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/views/flow/utils/processDisplay.js forge-admin-ui/src/views/flow/todo.vue forge-admin-ui/src/views/flow/done.vue forge-admin-ui/src/views/flow/started.vue forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessFlowService.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
本轮新增风险点:
processDefinitionId 可能是 UUID 或 key:version:id,审批表单加载必须解析为真实流程模型 Key 后再查 sys_flow_model。formType=business / formMode=BUSINESS_CODE_FORM,不能被当成动态表单去查 sys_flow_form。taskId 已能返回完整表单信息时,业务侧不应再调用流程实例表单信息接口做重复兜底。| 类型 | 命令 | 预期 |
|---|---|---|
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-flow,forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-server/forge-framework/forge-plugin-parent/forge-plugin-flow/src/main/java/com/mdframe/forge/starter/flow/service/impl/FlowTaskServiceImpl.java forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessFlowService.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
本轮新增风险点:
key:version:id 和历史 UUID 型值,避免已存在任务误报“不匹配”。processDefKey 应尽量归一化为业务流程模型 Key,减少前端和业务侧继续携带 UUID。| 类型 | 命令 | 预期 |
|---|---|---|
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-flow,forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-server/forge-framework/forge-plugin-parent/forge-plugin-flow/src/main/java/com/mdframe/forge/starter/flow/service/impl/FlowTaskServiceImpl.java forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessFlowService.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
本轮新增风险点:
initialTaskContext 时,仍要保留字段权限、只读/可写、必填校验和审批提交变量。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/components/common/FlowBusinessForm.vue src/views/flow/todo.vue src/views/business/purchase-order-test.vue src/composables/useBusinessTaskFormContext.js |
通过 |
| 前端构建 | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/components/common/FlowBusinessForm.vue forge-admin-ui/src/views/flow/todo.vue forge-admin-ui/src/views/business/purchase-order-test.vue forge-admin-ui/src/composables/useBusinessTaskFormContext.js code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
本轮新增风险点:
processDefKey,否则并行优化后仍可能误报“流程定义与当前任务不匹配”。todo.vue 参数收敛后,需要确保前端语法检查通过;后端兜底调整需要目标模块编译通过。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/flow/todo.vue |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/views/flow/todo.vue forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessFlowService.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md code-copilot/memory/pitfalls.md |
无空白错误 |
本轮新增风险点:
/api/flow/task/form/{taskId} 后,审批按钮策略仍必须来自业务表单上下文。FlowTaskServiceImpl#getTaskFormInfo 内部去重后,业务表单、动态表单和节点审批策略解析都要编译通过。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/flow/todo.vue |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-flow,forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/views/flow/todo.vue forge-server/forge-framework/forge-plugin-parent/forge-plugin-flow/src/main/java/com/mdframe/forge/starter/flow/service/impl/FlowTaskServiceImpl.java forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessFlowService.java forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/vo/businessapp/BusinessTaskFormContextVO.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
本轮新增风险点:
taskDefKey。isDeptLeaderTask/isEngineeringTask/isCountersignTask/isModifyTask 等业务判断,业务判断仍基于原始 taskDefKey。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/business/purchase-order-test.vue |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/views/business/purchase-order-test.vue code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
本轮新增风险点:
modelId/modelCode/options。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/app-center/components/BusinessUnitCard.vue src/views/app-center/components/ObjectCard.vue src/views/app-center/components/BusinessObjectEditorDrawer.vue src/views/app-center/index.vue 'src/views/app-center/suite.[suiteCode].vue' 'src/views/app-center/object.[objectCode].vue' |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/views/app-center/components/BusinessUnitCard.vue forge-admin-ui/src/views/app-center/components/ObjectCard.vue forge-admin-ui/src/views/app-center/components/BusinessObjectEditorDrawer.vue forge-admin-ui/src/views/app-center/index.vue 'forge-admin-ui/src/views/app-center/suite.[suiteCode].vue' 'forge-admin-ui/src/views/app-center/object.[objectCode].vue' forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessObjectService.java forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/mapper/BusinessObjectMapper.java forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/resources/mapper/BusinessObjectMapper.xml code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
手工验收建议:
本轮新增风险点:
displayField 清空。| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/app-center/components/BusinessObjectWizardDrawer.vue src/views/app-center/components/BusinessObjectEditorDrawer.vue 'src/views/app-center/object-designer.[objectCode].vue' |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/views/app-center/components/BusinessObjectWizardDrawer.vue forge-admin-ui/src/views/app-center/components/BusinessObjectEditorDrawer.vue 'forge-admin-ui/src/views/app-center/object-designer.[objectCode].vue' code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
本轮新增风险点:
| 类型 | 命令 | 预期 |
|---|---|---|
| 前端 eslint | source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm exec eslint src/views/app-center/components/designer/BusinessCodeAppFormAssetPanel.vue src/views/app-center/index.vue 'src/views/app-center/suite.[suiteCode].vue' 'src/views/app-center/object.[objectCode].vue' src/views/app-center/components/BusinessObjectEditorDrawer.vue src/views/app-center/components/SuiteEditorDrawer.vue |
通过 |
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-business/forge-business-core,forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-admin-ui/src/views/app-center/components/designer/BusinessCodeAppFormAssetPanel.vue forge-admin-ui/src/views/app-center/index.vue 'forge-admin-ui/src/views/app-center/suite.[suiteCode].vue' 'forge-admin-ui/src/views/app-center/object.[objectCode].vue' forge-admin-ui/src/views/app-center/components/BusinessObjectEditorDrawer.vue forge-admin-ui/src/views/app-center/components/SuiteEditorDrawer.vue forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessFlowService.java forge-server/forge-business/forge-business-core/src/main/java/com/mdframe/forge/business/core/purchase/service/impl/SamplePurchaseOrderServiceImpl.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
手工验收建议:
采购审批-{orderNo}-${title},发起采购流程后确认待办/流程实例标题按模板显示。本轮新增风险点:
approvalResult=reject 和 approved=false,避免驳回动作变量表示差异导致状态不变。| 类型 | 命令 | 预期 |
|---|---|---|
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-flow,forge-business/forge-business-core -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-server/forge-framework/forge-plugin-parent/forge-plugin-flow/src/main/java/com/mdframe/forge/starter/flow/service/impl/FlowTaskServiceImpl.java forge-server/forge-business/forge-business-core/src/main/java/com/mdframe/forge/business/core/purchase/service/impl/SamplePurchaseOrderServiceImpl.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
手工验收建议:
本轮新增风险点:
TASK_CREATED 不能影响采购审批首个部门负责人待办,也不能把已通过/已驳回单据错误改回待修改。TASK_COMPLETED 逻辑把状态切回“审批中”。| 类型 | 命令 | 预期 |
|---|---|---|
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-business/forge-business-core -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-server/forge-business/forge-business-core/src/main/java/com/mdframe/forge/business/core/purchase/service/impl/SamplePurchaseOrderServiceImpl.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
手工验收建议:
本轮新增风险点:
NEED_MODIFY 回到 IN_PROCESS。NEED_MODIFY 的存量待办,审批节点字段保存需要自愈状态,避免保存时报“当前采购单不是审批中状态”。| 类型 | 命令 | 预期 |
|---|---|---|
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-business/forge-business-core -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-server/forge-business/forge-business-core/src/main/java/com/mdframe/forge/business/core/purchase/service/impl/SamplePurchaseOrderServiceImpl.java forge-server/forge-business/forge-business-core/src/main/java/com/mdframe/forge/business/core/purchase/support/SamplePurchaseOrderFlowDefinition.java code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
手工验收建议:
本轮新增风险点:
sys_flow_task 当前待办节点的读取,必须避免影响已通过、已驳回、已取消等终态记录。IN_PROCESS/NEED_MODIFY 两类流转中状态,避免误改草稿或终态。| 类型 | 命令 | 预期 |
|---|---|---|
| 后端编译 | cd forge-server && JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-business/forge-business-core -am compile -DskipTests |
通过 |
| Diff 检查 | git diff --check -- forge-server/forge-business/forge-business-core/src/main/java/com/mdframe/forge/business/core/purchase/mapper/SamplePurchaseOrderMapper.java forge-server/forge-business/forge-business-core/src/main/java/com/mdframe/forge/business/core/purchase/service/impl/SamplePurchaseOrderServiceImpl.java forge-server/forge-business/forge-business-core/src/main/java/com/mdframe/forge/business/core/purchase/support/SamplePurchaseOrderFlowDefinition.java forge-server/forge-business/forge-business-core/src/main/resources/mapper/business/SamplePurchaseOrderMapper.xml code-copilot/changes/code-app-metadata-config/spec.md code-copilot/changes/code-app-metadata-config/tasks.md code-copilot/changes/code-app-metadata-config/test-spec.md code-copilot/changes/code-app-metadata-config/execution-log.md |
无空白错误 |
手工验收建议: