| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- -- 全模块规则配置表草案
- -- 状态:评审草案;P29 已在 aidopdev 研发库验证执行
- -- 试点:S3 / DELIVERY_GENERATE
- CREATE TABLE IF NOT EXISTS ado_rule_profile (
- id BIGINT PRIMARY KEY,
- module_code VARCHAR(32) NOT NULL COMMENT '模块编码,如 S3/S4/S8/S9',
- scenario_code VARCHAR(64) NOT NULL COMMENT '场景编码,如 DELIVERY_GENERATE',
- profile_code VARCHAR(64) NOT NULL COMMENT '规则方案编码',
- profile_name VARCHAR(128) NOT NULL COMMENT '规则方案名称',
- tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT '0 表示全局默认',
- factory_id BIGINT NOT NULL DEFAULT 0 COMMENT '0 表示租户级或全局',
- version INT NOT NULL DEFAULT 1 COMMENT '版本号',
- is_enabled TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
- effective_from DATETIME NULL COMMENT '生效开始时间',
- effective_to DATETIME NULL COMMENT '生效结束时间',
- remark VARCHAR(500) NULL,
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- created_by VARCHAR(64) NULL,
- updated_at DATETIME NULL,
- updated_by VARCHAR(64) NULL,
- UNIQUE KEY uk_rule_profile_code (module_code, scenario_code, profile_code, tenant_id, factory_id, version),
- KEY idx_rule_profile_effective (module_code, scenario_code, tenant_id, factory_id, is_enabled, effective_from, effective_to)
- ) COMMENT='全模块规则配置方案';
- CREATE TABLE IF NOT EXISTS ado_rule_item (
- id BIGINT PRIMARY KEY,
- profile_id BIGINT NOT NULL COMMENT '规则方案 ID',
- rule_code VARCHAR(64) NOT NULL COMMENT '规则编码',
- rule_name VARCHAR(128) NOT NULL COMMENT '规则名称',
- value_type VARCHAR(32) NOT NULL COMMENT 'string/number/boolean/string_array/number_array/json',
- rule_value TEXT NULL COMMENT '规则值,数组和对象使用 JSON',
- is_enabled TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
- sort_no INT NOT NULL DEFAULT 0,
- remark VARCHAR(500) NULL,
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- created_by VARCHAR(64) NULL,
- updated_at DATETIME NULL,
- updated_by VARCHAR(64) NULL,
- UNIQUE KEY uk_rule_item_code (profile_id, rule_code),
- KEY idx_rule_item_profile (profile_id, is_enabled)
- ) COMMENT='全模块规则配置项';
- CREATE TABLE IF NOT EXISTS ado_rule_schema (
- id BIGINT PRIMARY KEY,
- module_code VARCHAR(32) NOT NULL,
- scenario_code VARCHAR(64) NOT NULL,
- rule_code VARCHAR(64) NOT NULL,
- rule_name VARCHAR(128) NOT NULL,
- value_type VARCHAR(32) NOT NULL,
- default_value TEXT NULL COMMENT '默认值,数组和对象使用 JSON',
- required TINYINT NOT NULL DEFAULT 0,
- validation_rule TEXT NULL COMMENT 'min/max/enum/regex 等 JSON 描述',
- ui_control VARCHAR(32) NULL COMMENT 'input/number/switch/multi_select/json',
- option_source TEXT NULL COMMENT '静态枚举或数据源说明',
- is_enabled TINYINT NOT NULL DEFAULT 1,
- sort_no INT NOT NULL DEFAULT 0,
- remark VARCHAR(500) NULL,
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- created_by VARCHAR(64) NULL,
- updated_at DATETIME NULL,
- updated_by VARCHAR(64) NULL,
- UNIQUE KEY uk_rule_schema_code (module_code, scenario_code, rule_code),
- KEY idx_rule_schema_scene (module_code, scenario_code, is_enabled)
- ) COMMENT='全模块规则定义';
- -- S3 / DELIVERY_GENERATE 默认规则方案
- INSERT INTO ado_rule_profile
- (id, module_code, scenario_code, profile_code, profile_name, tenant_id, factory_id, version, is_enabled, remark)
- VALUES
- (1003000000001, 'S3', 'DELIVERY_GENERATE', 'S3_DELIVERY_GENERATE_DEFAULT', 'S3 交货单生成默认规则', 0, 0, 1, 1, 'P10 规则配置试点默认方案')
- AS new
- ON DUPLICATE KEY UPDATE
- profile_name=new.profile_name,
- is_enabled=new.is_enabled,
- remark=new.remark,
- updated_at=CURRENT_TIMESTAMP;
- -- S3 / DELIVERY_GENERATE 规则定义
- INSERT INTO ado_rule_schema
- (id, module_code, scenario_code, rule_code, rule_name, value_type, default_value, required, validation_rule, ui_control, option_source, is_enabled, sort_no, remark)
- VALUES
- (1003000000101, 'S3', 'DELIVERY_GENERATE', 'quotaRequiredTotal', '货源配额要求合计', 'number', '100', 1, '{"min":0,"max":100}', 'number', NULL, 1, 10, '货源配额合计校验目标值'),
- (1003000000102, 'S3', 'DELIVERY_GENERATE', 'quotaTolerance', '配额误差容忍', 'number', '0.0001', 1, '{"min":0}', 'number', NULL, 1, 20, '配额合计误差容忍'),
- (1003000000103, 'S3', 'DELIVERY_GENERATE', 'poBuyerCodes', '普通 PO 可用采购组', 'string_array', '["110","160","170"]', 1, NULL, 'multi_select', 'static:110,160,170', 1, 30, '普通 PO 采购组白名单'),
- (1003000000104, 'S3', 'DELIVERY_GENERATE', 'doUsages', 'DO 可用供应类别', 'string_array', '["标准","VMI","委外加工"]', 1, NULL, 'multi_select', 'static:标准,VMI,委外加工', 1, 40, 'DO 可用用途白名单'),
- (1003000000105, 'S3', 'DELIVERY_GENERATE', 'defaultLeadDays', '默认提前期天数', 'number', '1', 1, '{"min":0}', 'number', NULL, 1, 50, '货源提前期缺失或小于等于 0 时使用'),
- (1003000000106, 'S3', 'DELIVERY_GENERATE', 'enablePackagingRoundUp', '启用包装量向上取整', 'boolean', 'true', 1, NULL, 'switch', NULL, 1, 60, '是否按 packaging_qty 圆整'),
- (1003000000107, 'S3', 'DELIVERY_GENERATE', 'shortageCreatePr', 'PO 不足自动生成 PR', 'boolean', 'true', 1, NULL, 'switch', NULL, 1, 70, '采购单不足时是否生成 PR'),
- (1003000000108, 'S3', 'DELIVERY_GENERATE', 'enablePrMerge', '启用 PR 合并', 'boolean', 'true', 1, NULL, 'switch', NULL, 1, 80, '是否启用本次生成 PR 合并'),
- (1003000000109, 'S3', 'DELIVERY_GENERATE', 'enableRequireGoodsToPo', '启用要货令转 DO/PO', 'boolean', 'true', 1, NULL, 'switch', NULL, 1, 90, '是否将 IsRequireGoods=1 的 PR 转 DO/PO'),
- (1003000000110, 'S3', 'DELIVERY_GENERATE', 'enableExternalPushTracking', '启用外部事务写入', 'boolean', 'true', 1, NULL, 'switch', NULL, 1, 100, '是否写 QadTracking;P22 为保持现有 P5 行为默认开启')
- AS new
- ON DUPLICATE KEY UPDATE
- rule_name=new.rule_name,
- value_type=new.value_type,
- default_value=new.default_value,
- required=new.required,
- validation_rule=new.validation_rule,
- ui_control=new.ui_control,
- option_source=new.option_source,
- is_enabled=new.is_enabled,
- sort_no=new.sort_no,
- remark=new.remark,
- updated_at=CURRENT_TIMESTAMP;
- -- S3 / DELIVERY_GENERATE 默认规则项
- INSERT INTO ado_rule_item
- (id, profile_id, rule_code, rule_name, value_type, rule_value, is_enabled, sort_no, remark)
- VALUES
- (1003000000201, 1003000000001, 'quotaRequiredTotal', '货源配额要求合计', 'number', '100', 1, 10, NULL),
- (1003000000202, 1003000000001, 'quotaTolerance', '配额误差容忍', 'number', '0.0001', 1, 20, NULL),
- (1003000000203, 1003000000001, 'poBuyerCodes', '普通 PO 可用采购组', 'string_array', '["110","160","170"]', 1, 30, NULL),
- (1003000000204, 1003000000001, 'doUsages', 'DO 可用供应类别', 'string_array', '["标准","VMI","委外加工"]', 1, 40, NULL),
- (1003000000205, 1003000000001, 'defaultLeadDays', '默认提前期天数', 'number', '1', 1, 50, NULL),
- (1003000000206, 1003000000001, 'enablePackagingRoundUp', '启用包装量向上取整', 'boolean', 'true', 1, 60, NULL),
- (1003000000207, 1003000000001, 'shortageCreatePr', 'PO 不足自动生成 PR', 'boolean', 'true', 1, 70, NULL),
- (1003000000208, 1003000000001, 'enablePrMerge', '启用 PR 合并', 'boolean', 'true', 1, 80, NULL),
- (1003000000209, 1003000000001, 'enableRequireGoodsToPo', '启用要货令转 DO/PO', 'boolean', 'true', 1, 90, NULL),
- (1003000000210, 1003000000001, 'enableExternalPushTracking', '启用外部事务写入', 'boolean', 'true', 1, 100, 'P22 为保持现有 P5 行为默认开启;生产切换前仍需确认 QadTracking 消费机制')
- AS new
- ON DUPLICATE KEY UPDATE
- rule_name=new.rule_name,
- value_type=new.value_type,
- rule_value=new.rule_value,
- is_enabled=new.is_enabled,
- sort_no=new.sort_no,
- remark=new.remark,
- updated_at=CURRENT_TIMESTAMP;
|