Skip to content

合同功能设计 ​

这篇解决什么 ​

合同怎么分层:分类 / 模板是配置,起草是申请单,通过后才进台账。变更走第二条流程,履约是流水不是审批。读完先对模块边界和表,再进台账、变更篇。

默认端口 48080,前缀 /admin-api。工程启动见 快速开始。审批接入见 业务表单开发。

业务流程及架构 ​

合同自己不算流程引擎。起草、变更、签署在 yudao-module-contract,实现 FlowBillService,通过后回调回写。履约记录和收付款计划没有 processDefinitionKey。

示意图:左客户端。中间合同读部门和用户,起草 / 变更 / 签署走 Flowable。

名称说明仓库路径
起草 / 台账contract_info 通过后登记 contract_ledger合同台账
变更 / 履约变更审批;履约只记账合同变更与履约
模板 / 分类先配再起草/contract/template、/contract/category

不要用目录名当流程 key

起草是 contract_approve,不是 contract_info。全部 key 以 ContractBillTypeEnum 为准。

数据表 ER ​

主干表按 DO 画出。标的、附件、OnlyOffice 正文不进这张图。

示意图:台账用 draftContractId 指回起草单,两表不是同一行 id。履约可挂计划,本身不进 Flowable。

前后端代码 ​

名称说明仓库路径
模块api 枚举 + server 实现ruoyi-office/yudao-module-contract/
单体引入yudao-module-contract-serverruoyi-office/yudao-server/pom.xml
单据枚举类型码 + processDefinitionKeyyudao-module-contract-api/.../ContractBillTypeEnum.java
管理端合同目录ruoyi-office-vben/apps/web-antd/src/views/contract/
移动端业务在 pages-contractruoyi-office-uniapp/src/pages-contract/

官方菜单:合同管理(/contract)。起草详情在 info/detail/,路由常见 /contract/contract-info-detail。看不到菜单先查角色。

「OA 商业版」裁剪整模块 yudao-module-contract。本指南按全功能 ALL 写。

合同台账列表

本系统截图:合同 → 合同台账。能进列表说明模块和菜单已经在跑。

合同起草详情

本系统截图:起草 / 详情。模型路径要对 contract-info-detail,不要照 OA 单据写 info/info。

功能开启 ​

单体 -P boot 时已经依赖合同实现,没有单独的「合同开关」页。启动 YudaoServerApplication 即可。

客户默认包 ruoyi-office-db/dump/latest/:先 schema_*.sql 再 static_data_*.sql,带 contract_* 表、菜单、字典和已发布起草 / 变更 / 签署模型。以后改表走 ruoyi-office-db/update/。

角色要勾合同菜单和权限字,例如 contract:info:create。只开了流程中心、没开合同,发起项会被滤掉。

先建分类 /contract/category 和模板 /contract/template,再起草。在线编辑另走 /contract/onlyoffice,和 OA 云盘 OnlyOffice 不是同一个 Controller。

名称说明仓库路径
301 起草contract_approve/contract/contract-info-detail
302 变更contract_change/contract/contract-change-detail
303 签署contract_sign/contract/contract-sign-detail

起草页不是 info

前端详情在 views/contract/info/detail/。模型 formCustomViewPath 要对到实际 component。

履约没有第四条 key

收付款计划和履约记录没有 processDefinitionKey。不要给 /contract/performance 挂模型。

java
CONTRACT_APPROVE("301", "合同审批", "contract_approve"),
CONTRACT_CHANGE("302", "合同变更审批", "contract_change"),
CONTRACT_SIGN("303", "合同签署确认", "contract_sign"),

摘自 ContractBillTypeEnum。第三段才是 Flowable 的 KEY_。

示意图:先库和菜单,再对 key,最后配模板。

旧文 合同功能开启 已并入本页,请收藏本篇。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版