合同管理、合同提醒
这篇解决什么
合同存在哪、审批走哪个 key、到期提醒看哪张配置。读完能对上 crm_contract、PUT /submit、crm-contract-audit,以及 crm_contract_config.notifyDays。没有单独的合同提醒 Job。
默认端口 48080,管理端前缀 /admin-api。PC 开发页 http://127.0.0.1:5800。客户、商机要先有,见 客户管理、公海客户、商机管理、商机状态。
示意图:合同自己落表。只有提交审批才起 BPM,key 写死在服务里。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 合同接口 | @RequestMapping("/crm/contract") | ruoyi-office/yudao-module-crm/.../controller/admin/contract/CrmContractController.java |
| 合同表 | crm_contract | CrmContractDO |
| 合同产品 | crm_contract_product | CrmContractProductDO |
| 提交审批 | PUT /submit | 同上 Controller |
| 转移 | PUT /transfer | 同上 |
| 待审 / 即将到期数量 | GET /audit-count、/remind-count | 同上 |
| 到期配置 | @RequestMapping("/crm/contract-config") | CrmContractConfigController |
| 配置表 | crm_contract_config | CrmContractConfigDO |
| 流程 key | crm-contract-audit | CrmContractServiceImpl、CrmBillTypeEnum 401 |
| PC | /crm/contract,配置 /crm/config/contract-config | ruoyi-office-vben/apps/web-antd/src/views/crm/contract/ |
官方菜单:2398 销售合同,2708 合同配置(挂在 2524 系统配置下)。按钮 crm:contract:create / update。自定义表单路径用 /crm/contract 或 /crm/contract/detail。

本系统截图:CRM → 销售合同。客户、金额、审批状态在这一张主表。

本系统截图:CRM → 系统配置 → 合同配置。只配是否提醒和提前几天。
审批和提醒
新建时 Redis 生成合同号,前缀 HT。负责人写 crm_permission 的 OWNER 行。提交前必须是未提交 0,提交后改成审批中 10,并记下 processInstanceId。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
customerId / businessId | 客户必填,商机可选 | crm_contract |
no | HT + 日期 + 6 位 | CrmNoRedisDAO |
auditStatus | 0 未提交 10 审批中 20 通过 30 不通过 40 取消 | CrmAuditStatusEnum |
endTime | 到期日,提醒按它算 | 同上 |
notifyEnabled / notifyDays | 关了数量接口直接回 0 | crm_contract_config |
totalPrice | 产品合计再打折 | crm_contract_product |
contractInfoId / mdmContractLedgerId | 审批通过后可选推合同中心或 MDM | 本仓库扩展字段 |
CREATE TABLE crm_contract (
id bigint NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
no varchar(64) DEFAULT NULL,
customer_id bigint DEFAULT NULL,
process_instance_id varchar(64) DEFAULT NULL,
audit_status int DEFAULT NULL,
end_time datetime DEFAULT NULL,
total_price decimal(24,6) DEFAULT NULL,
PRIMARY KEY (id)
);示意图:提醒只统计已通过、且 endTime 落在今天到 notifyDays 之内的合同。待办页读这个数量,不是 XXL-Job。
合同提醒不是 Job
CRM 里唯一的 XXL-Job 是公海 customerAutoPutPoolJob。合同到期只靠 GET /remind-count 和待办「即将到期的合同」。配置关掉,数字就是 0。
审批通过后,本仓库可按 yudao.crm.contract.push-on-approve 推合同中心,或写 MDM 主数据。不要和独立的合同中心菜单 /contract 混成一张表。
配置与操作
在 CRM → 系统配置 → 合同配置(2708)改 notifyEnabled / notifyDays。关掉后 GET /remind-count 直接回 0。待办读这个数量,没有合同提醒 Job。
走 销售合同(2398)建单,必填 customerId,商机 businessId 可选,产品明细算 totalPrice。合同号 Redis 前缀 HT。未提交 auditStatus=0 才能 PUT /submit,key 是 crm-contract-audit(CrmBillTypeEnum 401)。提交后变审批中 10,记下 processInstanceId。自定义表单路径 /crm/contract 或 /crm/contract/detail。
截图见上文。
