-- mom-xgdl:回款 BPM 必要配置。仅在现有开票审批配置可用时复用同一财务审批人。
|
-- 幂等执行;不会插入业务回款、伪造审批结果或改动定制流程定义。
|
START TRANSACTION;
|
|
INSERT INTO system_approval_config
|
(biz_type, biz_name, approval_enabled, remark, creator, create_time, updater, update_time, deleted)
|
SELECT 'crm_receivable_approve', '回款审批', i.approval_enabled,
|
'回款审批复用开票财务审批人', '1', NOW(), '1', NOW(), b'0'
|
FROM system_approval_config i
|
WHERE i.biz_type = 'crm_invoice_approve' AND i.deleted = b'0'
|
AND NOT EXISTS (
|
SELECT 1 FROM system_approval_config c
|
WHERE c.biz_type = 'crm_receivable_approve' AND c.deleted = b'0'
|
)
|
LIMIT 1;
|
|
INSERT INTO system_approval_config_user
|
(config_id, user_id, sort, creator, create_time, updater, update_time, deleted)
|
SELECT r.id, iu.user_id, iu.sort, '1', NOW(), '1', NOW(), b'0'
|
FROM system_approval_config r
|
JOIN system_approval_config i ON i.biz_type = 'crm_invoice_approve' AND i.deleted = b'0'
|
JOIN system_approval_config_user iu ON iu.config_id = i.id AND iu.deleted = b'0'
|
WHERE r.biz_type = 'crm_receivable_approve' AND r.deleted = b'0'
|
AND r.remark = '回款审批复用开票财务审批人'
|
AND NOT EXISTS (
|
SELECT 1 FROM system_approval_config_user existing
|
WHERE existing.config_id = r.id AND existing.deleted = b'0'
|
)
|
AND NOT EXISTS (
|
SELECT 1 FROM system_approval_config_user ru
|
WHERE ru.config_id = r.id AND ru.user_id = iu.user_id AND ru.deleted = b'0'
|
);
|
|
COMMIT;
|
|
-- 只读核验:回款流程定义及审批配置均应存在且启用。
|
SELECT KEY_, SUSPENSION_STATE_ FROM ACT_RE_PROCDEF WHERE KEY_ = 'crm-receivable-audit';
|
SELECT c.biz_type, c.approval_enabled, COUNT(u.id) AS approver_count
|
FROM system_approval_config c
|
LEFT JOIN system_approval_config_user u ON u.config_id = c.id AND u.deleted = b'0'
|
WHERE c.biz_type = 'crm_receivable_approve' AND c.deleted = b'0'
|
GROUP BY c.id, c.biz_type, c.approval_enabled;
|