Skip to content

合同台账 ​

这篇解决什么 ​

起草单 contract_info 和通过后的台账 contract_ledger 为什么分表。读完能改 /contract/info 和 /contract/ledger,不要在起草列表里改已生效金额冒充变更。

先开模块和模型,见 合同功能设计。变更见 合同变更与履约。

示意图:模板填进起草单。通过后登记台账,并可生成签署记录。

从哪改 ​

名称说明仓库路径
起草/contract/info,key contract_approveruoyi-office/yudao-module-contract/.../ContractInfoController.java
台账/contract/ledgerContractLedgerController.java
签署/contract/sign,key contract_signContractSignController.java
表起草 / 台账 / 标的 / 签署contract_info、contract_ledger、contract_item、contract_sign
前端列表、detail、台账页、草稿列表ruoyi-office-vben/apps/web-antd/src/views/contract/info/

ContractInfoServiceImpl.onProcessApproved 会生成正文文件、登记附件,并按配置生成签署记录或直接生效。台账行用 draftContractId 指回起草单,两表字段相近但 不是 同一行 id。

contractType:1 销售 / 2 采购 / 3 服务 / 4 租赁 / 5 劳动 / 6 框架 / 99 其他。contractNature:1 收入 / 2 支出 / 3 无金额。日期 signDate / startDate / endDate 是 LocalDate。

对方单位优先 counterpartyMdmId(主数据伙伴)。counterpartyType + counterpartyId 兼容旧数据。甲乙方由 ourRole 映射,不要只改 partyBName 不同步对方。

正文在 contentHtml,占位在 fieldValuesJson。编辑页 info/doc-editor/。模板版本写 templateId + templateVersion。

移动发起权限 contract:info:create,创建页 pages-contract/info/create。

字段 ​

名称说明仓库路径
billCode / contractCode单据号与合同号ContractInfoDO
totalAmount / performanceAmount总额与已履约同上
draftContractId台账回挂起草ContractLedgerDO
status / processStatus合同态与审批态ContractInfoDO

台账不是第二张起草单

已生效合同改金额走变更单。直接 UPDATE contract_ledger 不会留 amountBefore / amountAfter。

详情路径是 detail

模型 formCustomViewPath 应对 contract/info/detail(或当前菜单 component)。写成 info/info 会白屏。

java
@RequestMapping("/contract/info")
public class ContractInfoController { }

@TableName(value = "contract_ledger", autoResultMap = true)
public class ContractLedgerDO extends TenantBaseDO { }

配置与操作 ​

先在 合同 → 合同分类 / 合同模板 建分类和模板。起草走草稿列表或 contract-info-detail,选模板填对方、金额、起止日后提交。contractType 与 ourRole 要和对方主数据对上,不要只改 partyBName。

审批通过后看 合同台账(contract_ledger),不要在起草列表改已生效金额。详情路径是 info/detail,模型不要写成 info/info。

合同台账

本系统截图:合同 → 合同台账。点编号进详情。

合同详情

本系统截图:起草 / 台账详情。日期是 LocalDate。

相关篇 ​

联系我们

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

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版