| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- -- 产品创建:195 / 196 / 198
- -- 背景:
- -- 下单页「产品类型」下拉读取 mes_product_cate(status='0')。
- -- 目前主数据只有 CZ060 / CZ061,缺少 195 / 196 / 198 三种产品,
- -- 下单时无法选择,订单-计划-产品链路无法按产品区分。
- -- 本脚本:
- -- 1) 以 CZ060 的模板作为 195/196/198 的默认生产模板(取不到时用任一启用模板兜底);
- -- 2) 幂等创建 195/196/198 三条产品类型:已存在则更新名称/模板/状态,不存在则插入;
- -- 3) 输出校验结果。
- -- 说明:
- -- - sn 与 title 均为 195/196/198,下单下拉直接显示产品编号;
- -- - cate=0 表示产品(1=零件);
- -- - 可重复执行,不会产生重复数据;
- -- - 执行后无需重启,下单页刷新即可看到三种产品。
- -- ---------- 1. 取默认模板 ----------
- SET @template_id = (SELECT template_id FROM mes_product_cate WHERE sn = 'CZ060' LIMIT 1);
- SET @template_id = IFNULL(NULLIF(@template_id, ''),
- (SELECT id FROM mes_template WHERE status = '0' ORDER BY update_date DESC LIMIT 1));
- -- ---------- 2. 幂等创建三种产品 ----------
- INSERT INTO `mes_product_cate`
- (`id`, `title`, `sn`, `status`, `template_id`, `create_by`, `create_date`, `update_by`, `update_date`, `cate`)
- SELECT '2026102100000195', '195', '195', '0', @template_id, 'system', NOW(), 'system', NOW(), 0
- FROM DUAL
- WHERE NOT EXISTS (SELECT 1 FROM `mes_product_cate` WHERE `sn` = '195');
- INSERT INTO `mes_product_cate`
- (`id`, `title`, `sn`, `status`, `template_id`, `create_by`, `create_date`, `update_by`, `update_date`, `cate`)
- SELECT '2026102100000196', '196', '196', '0', @template_id, 'system', NOW(), 'system', NOW(), 0
- FROM DUAL
- WHERE NOT EXISTS (SELECT 1 FROM `mes_product_cate` WHERE `sn` = '196');
- INSERT INTO `mes_product_cate`
- (`id`, `title`, `sn`, `status`, `template_id`, `create_by`, `create_date`, `update_by`, `update_date`, `cate`)
- SELECT '2026102100000198', '198', '198', '0', @template_id, 'system', NOW(), 'system', NOW(), 0
- FROM DUAL
- WHERE NOT EXISTS (SELECT 1 FROM `mes_product_cate` WHERE `sn` = '198');
- -- 已存在时校正名称、模板、状态,保证脚本可重复执行
- UPDATE `mes_product_cate`
- SET `title` = `sn`,
- `status` = '0',
- `template_id` = IFNULL(NULLIF(@template_id, ''), `template_id`),
- `cate` = 0,
- `update_by` = 'system',
- `update_date` = NOW()
- WHERE `sn` IN ('195', '196', '198');
- -- ---------- 3. 校验 ----------
- -- 3.1 三种产品应各有一条,且 status=0、template_id 非空
- SELECT `id`, `title`, `sn`, `status`, `template_id`, `cate`
- FROM `mes_product_cate`
- WHERE `sn` IN ('195', '196', '198')
- ORDER BY `sn`;
- -- 3.2 模板缺失检查(应为 0 行)
- SELECT `sn`, `title`, `template_id`
- FROM `mes_product_cate`
- WHERE `sn` IN ('195', '196', '198')
- AND (`template_id` IS NULL OR `template_id` = '');
- SELECT '产品 195/196/198 创建完成' AS message;
|