ForgeFlow-ERP/backend/sql/seed_benti_master_data.sql
2026-06-14 21:05:49 +08:00

683 lines
32 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

USE jiaheng_erp;
SET NAMES utf8mb4;
START TRANSACTION;
-- 基础组织
INSERT INTO sys_department (dept_code, dept_name, parent_id, dept_type, manager_name, status, sort_no, remark)
SELECT 'ADMIN', '综合管理部', NULL, 'ADMIN', '总经理', 'ACTIVE', 10, '负责主数据、权限、经营总览'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_department WHERE dept_code = 'ADMIN');
INSERT INTO sys_department (dept_code, dept_name, parent_id, dept_type, manager_name, status, sort_no, remark)
SELECT 'SALES', '销售部', NULL, 'SALES', '销售主管', 'ACTIVE', 20, '负责客户、订单、交期'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_department WHERE dept_code = 'SALES');
INSERT INTO sys_department (dept_code, dept_name, parent_id, dept_type, manager_name, status, sort_no, remark)
SELECT 'PURCHASE', '采购部', NULL, 'PURCHASE', '采购主管', 'ACTIVE', 30, '负责钢板采购与供应商协同'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_department WHERE dept_code = 'PURCHASE');
INSERT INTO sys_department (dept_code, dept_name, parent_id, dept_type, manager_name, status, sort_no, remark)
SELECT 'WAREHOUSE', '仓储部', NULL, 'WAREHOUSE', '仓库主管', 'ACTIVE', 40, '负责原材料、成品、退货、废料收发存'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_department WHERE dept_code = 'WAREHOUSE');
INSERT INTO sys_department (dept_code, dept_name, parent_id, dept_type, manager_name, status, sort_no, remark)
SELECT 'PRODUCTION', '生产部', NULL, 'PRODUCTION', '车间主任', 'ACTIVE', 50, '负责工单、工序、报工'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_department WHERE dept_code = 'PRODUCTION');
INSERT INTO sys_department (dept_code, dept_name, parent_id, dept_type, manager_name, status, sort_no, remark)
SELECT 'FINANCE', '财务部', NULL, 'FINANCE', '财务主管', 'ACTIVE', 60, '负责成本、对账、报表'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_department WHERE dept_code = 'FINANCE');
INSERT INTO sys_department (dept_code, dept_name, parent_id, dept_type, manager_name, status, sort_no, remark)
SELECT 'EQUIPMENT', '设备部', NULL, 'EQUIPMENT', '设备主管', 'ACTIVE', 70, '负责设备保养、维修、点检'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_department WHERE dept_code = 'EQUIPMENT');
-- 基础角色
INSERT INTO sys_role (role_code, role_name, role_scope, status, remark)
SELECT 'ADMIN', '系统管理员', 'SYSTEM', 'ACTIVE', '全局主数据、参数、异常中心'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_code = 'ADMIN');
INSERT INTO sys_role (role_code, role_name, role_scope, status, remark)
SELECT 'SALES', '销售员', 'SYSTEM', 'ACTIVE', '客户与订单维护'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_code = 'SALES');
INSERT INTO sys_role (role_code, role_name, role_scope, status, remark)
SELECT 'PURCHASER', '采购员', 'SYSTEM', 'ACTIVE', '采购申请、采购订单、到货跟踪'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_code = 'PURCHASER');
INSERT INTO sys_role (role_code, role_name, role_scope, status, remark)
SELECT 'WAREHOUSE', '仓库员', 'SYSTEM', 'ACTIVE', '收货、上架、领料、盘点、发货'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_code = 'WAREHOUSE');
INSERT INTO sys_role (role_code, role_name, role_scope, status, remark)
SELECT 'PLANNER', '计划员', 'SYSTEM', 'ACTIVE', 'MRP、工单下达、排产'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_code = 'PLANNER');
INSERT INTO sys_role (role_code, role_name, role_scope, status, remark)
SELECT 'SUPERVISOR', '车间主管', 'SYSTEM', 'ACTIVE', '工单进度、异常审核、现场调度'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_code = 'SUPERVISOR');
INSERT INTO sys_role (role_code, role_name, role_scope, status, remark)
SELECT 'OPERATOR', '加工员工', 'SYSTEM', 'ACTIVE', '扫码报工、报废反馈、停机反馈'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_code = 'OPERATOR');
INSERT INTO sys_role (role_code, role_name, role_scope, status, remark)
SELECT 'FINANCE', '财务员', 'SYSTEM', 'ACTIVE', '费用归集、报表、核对'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_code = 'FINANCE');
INSERT INTO sys_role (role_code, role_name, role_scope, status, remark)
SELECT 'EQUIP_ADMIN', '设备管理员', 'SYSTEM', 'ACTIVE', '设备台账、保养计划、维修'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role WHERE role_code = 'EQUIP_ADMIN');
-- 单位
INSERT INTO md_unit (unit_code, unit_name, precision_digits)
SELECT 'PCS', '', 0 FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_unit WHERE unit_code = 'PCS');
INSERT INTO md_unit (unit_code, unit_name, precision_digits)
SELECT 'KG', '千克', 3 FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_unit WHERE unit_code = 'KG');
INSERT INTO md_unit (unit_code, unit_name, precision_digits)
SELECT 'TON', '', 3 FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_unit WHERE unit_code = 'TON');
INSERT INTO md_unit (unit_code, unit_name, precision_digits)
SELECT 'SHEET', '', 0 FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_unit WHERE unit_code = 'SHEET');
-- 物料分类
INSERT INTO md_item_category (category_code, category_name, parent_id, item_type, sort_no, status)
SELECT 'CAT-RM-PLATE', '钢板原材料', NULL, 'RAW_MATERIAL', 10, 'ACTIVE'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_item_category WHERE category_code = 'CAT-RM-PLATE');
INSERT INTO md_item_category (category_code, category_name, parent_id, item_type, sort_no, status)
SELECT 'CAT-FG-HARDWARE', '五金成品', NULL, 'FINISHED_GOOD', 20, 'ACTIVE'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_item_category WHERE category_code = 'CAT-FG-HARDWARE');
INSERT INTO md_item_category (category_code, category_name, parent_id, item_type, sort_no, status)
SELECT 'CAT-SCRAP-METAL', '金属废料', NULL, 'SCRAP', 30, 'ACTIVE'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_item_category WHERE category_code = 'CAT-SCRAP-METAL');
-- 供应商
INSERT INTO md_supplier (supplier_code, supplier_name, short_name, contact_name, contact_phone, address, lead_time_days, default_tax_rate, status, remark)
SELECT 'SUP-NB-JG-001', '宁波嘉钢材料有限公司', '嘉钢材料', '王经理', '13800001111', '宁波市镇海区钢材市场', 5, 0.1300, 'ACTIVE', '本体默认板材供应商'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_supplier WHERE supplier_code = 'SUP-NB-JG-001');
-- 仓库
INSERT INTO wh_warehouse (warehouse_code, warehouse_name, warehouse_type, manager_employee_id, status, remark)
SELECT 'WH-RM-01', '原材料库', 'RAW', NULL, 'ACTIVE', '自家料、客供料等生产主材库存'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM wh_warehouse WHERE warehouse_code = 'WH-RM-01');
INSERT INTO wh_warehouse (warehouse_code, warehouse_name, warehouse_type, manager_employee_id, status, remark)
SELECT 'WH-SEMI-01', '半成品库', 'SEMI', NULL, 'ACTIVE', '加工到一半、尚未完成全部工艺的半成品暂存'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM wh_warehouse WHERE warehouse_code = 'WH-SEMI-01');
INSERT INTO wh_warehouse (warehouse_code, warehouse_name, warehouse_type, manager_employee_id, status, remark)
SELECT 'WH-FG-01', '成品库', 'FINISHED', NULL, 'ACTIVE', '完工入库后可发货的成品库存'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM wh_warehouse WHERE warehouse_code = 'WH-FG-01');
INSERT INTO wh_warehouse (warehouse_code, warehouse_name, warehouse_type, manager_employee_id, status, remark)
SELECT 'WH-AUX-01', '辅料库', 'AUX', NULL, 'ACTIVE', '手套、薄膜、纸箱、螺丝钉等生产消耗辅料库存'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM wh_warehouse WHERE warehouse_code = 'WH-AUX-01');
INSERT INTO wh_warehouse (warehouse_code, warehouse_name, warehouse_type, manager_employee_id, status, remark)
SELECT 'WH-RT-01', '退货仓', 'RETURN', NULL, 'ACTIVE', '客户退货待判定区域'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM wh_warehouse WHERE warehouse_code = 'WH-RT-01');
INSERT INTO wh_warehouse (warehouse_code, warehouse_name, warehouse_type, manager_employee_id, status, remark)
SELECT 'WH-SCRAP-01', '废料库', 'SCRAP', NULL, 'ACTIVE', '生产废料、边角料、委外废料、报废品等废料库存'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM wh_warehouse WHERE warehouse_code = 'WH-SCRAP-01');
-- 默认库位
INSERT INTO wh_location (warehouse_id, location_code, location_name, zone_name, is_default, is_locked, status, remark)
SELECT (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-RM-01'), 'RM-A-01', '原料主库位', 'A区', 1, 0, 'ACTIVE', '默认收货库位'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM wh_location
WHERE warehouse_id = (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-RM-01')
AND location_code = 'RM-A-01'
);
INSERT INTO wh_location (warehouse_id, location_code, location_name, zone_name, is_default, is_locked, status, remark)
SELECT (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-SEMI-01'), 'SEMI-B-01', '半成品暂存位', 'B区', 1, 0, 'ACTIVE', '半成品暂存'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM wh_location
WHERE warehouse_id = (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-SEMI-01')
AND location_code = 'SEMI-B-01'
);
INSERT INTO wh_location (warehouse_id, location_code, location_name, zone_name, is_default, is_locked, status, remark)
SELECT (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-FG-01'), 'FG-C-01', '成品主库位', 'C区', 1, 0, 'ACTIVE', '成品默认库位'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM wh_location
WHERE warehouse_id = (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-FG-01')
AND location_code = 'FG-C-01'
);
INSERT INTO wh_location (warehouse_id, location_code, location_name, zone_name, is_default, is_locked, status, remark)
SELECT (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-AUX-01'), 'AUX-D-01', '辅料主库位', 'D区', 1, 0, 'ACTIVE', '辅料默认库位'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM wh_location
WHERE warehouse_id = (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-AUX-01')
AND location_code = 'AUX-D-01'
);
INSERT INTO wh_location (warehouse_id, location_code, location_name, zone_name, is_default, is_locked, status, remark)
SELECT (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-RT-01'), 'RT-D-01', '退货暂存位', 'D区', 1, 0, 'ACTIVE', '退货待返工或报废'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM wh_location
WHERE warehouse_id = (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-RT-01')
AND location_code = 'RT-D-01'
);
INSERT INTO wh_location (warehouse_id, location_code, location_name, zone_name, is_default, is_locked, status, remark)
SELECT (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-SCRAP-01'), 'SCR-E-01', '废料暂存位', 'E区', 1, 0, 'ACTIVE', '金属废料集中存放'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM wh_location
WHERE warehouse_id = (SELECT id FROM wh_warehouse WHERE warehouse_code = 'WH-SCRAP-01')
AND location_code = 'SCR-E-01'
);
-- 工序
INSERT INTO md_process (process_code, process_name, process_type, is_report_required, is_quality_gate, status, remark)
SELECT 'PROC-KP', '开平', 'PREP', 1, 0, 'ACTIVE', '钢板整平、裁片准备'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_process WHERE process_code = 'PROC-KP');
INSERT INTO md_process (process_code, process_name, process_type, is_report_required, is_quality_gate, status, remark)
SELECT 'PROC-CY', '冲压', 'PRESS', 1, 0, 'ACTIVE', '主成形工序,重点监控报废'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_process WHERE process_code = 'PROC-CY');
INSERT INTO md_process (process_code, process_name, process_type, is_report_required, is_quality_gate, status, remark)
SELECT 'PROC-MC', '去毛刺', 'FINISH', 1, 0, 'ACTIVE', '去除冲压后毛刺'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_process WHERE process_code = 'PROC-MC');
INSERT INTO md_process (process_code, process_name, process_type, is_report_required, is_quality_gate, status, remark)
SELECT 'PROC-ZW', '折弯', 'BEND', 1, 0, 'ACTIVE', '形成结构外形'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_process WHERE process_code = 'PROC-ZW');
INSERT INTO md_process (process_code, process_name, process_type, is_report_required, is_quality_gate, status, remark)
SELECT 'PROC-HJ', '焊接', 'WELD', 1, 0, 'ACTIVE', '关键连接工序'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_process WHERE process_code = 'PROC-HJ');
INSERT INTO md_process (process_code, process_name, process_type, is_report_required, is_quality_gate, status, remark)
SELECT 'PROC-QA', '检验包装', 'QA', 1, 1, 'ACTIVE', '终检、包装、入库前放行'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_process WHERE process_code = 'PROC-QA');
-- 工作中心
INSERT INTO md_work_center (center_code, center_name, dept_id, center_type, shift_pattern, capacity_hours_per_day, status, remark)
SELECT 'WC-KP-01', '开平工作中心', (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), 'PREP', '两班制', 16.00, 'ACTIVE', '本体板材预处理'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_work_center WHERE center_code = 'WC-KP-01');
INSERT INTO md_work_center (center_code, center_name, dept_id, center_type, shift_pattern, capacity_hours_per_day, status, remark)
SELECT 'WC-CY-01', '冲压工作中心', (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), 'PRESS', '两班制', 16.00, 'ACTIVE', '本体冲压成形'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_work_center WHERE center_code = 'WC-CY-01');
INSERT INTO md_work_center (center_code, center_name, dept_id, center_type, shift_pattern, capacity_hours_per_day, status, remark)
SELECT 'WC-MC-01', '去毛刺工作中心', (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), 'FINISH', '两班制', 16.00, 'ACTIVE', '去毛刺与修边'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_work_center WHERE center_code = 'WC-MC-01');
INSERT INTO md_work_center (center_code, center_name, dept_id, center_type, shift_pattern, capacity_hours_per_day, status, remark)
SELECT 'WC-ZW-01', '折弯工作中心', (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), 'BEND', '两班制', 16.00, 'ACTIVE', '折弯定型'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_work_center WHERE center_code = 'WC-ZW-01');
INSERT INTO md_work_center (center_code, center_name, dept_id, center_type, shift_pattern, capacity_hours_per_day, status, remark)
SELECT 'WC-HJ-01', '焊接工作中心', (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), 'WELD', '两班制', 16.00, 'ACTIVE', '焊接与补焊'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_work_center WHERE center_code = 'WC-HJ-01');
INSERT INTO md_work_center (center_code, center_name, dept_id, center_type, shift_pattern, capacity_hours_per_day, status, remark)
SELECT 'WC-QA-01', '检验包装工作中心', (SELECT id FROM sys_department WHERE dept_code = 'PRODUCTION'), 'QA', '白班', 8.00, 'ACTIVE', '终检、包装、贴标'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_work_center WHERE center_code = 'WC-QA-01');
-- 物料主档:原材料、成品、废料
INSERT INTO md_item (
item_code, item_name, item_type, category_id, specification, model_no, material_type, material_grade,
length_mm, width_mm, thickness_mm, density_kg_m3, theoretical_weight_kg, unit_weight_kg,
sales_unit_id, stock_unit_id, purchase_unit_id, safety_stock_qty, safety_stock_weight_kg,
scrap_sale_price, status, remark
)
SELECT
'RM-SAP440-500600-2.5', 'SAP440钢板', 'RAW_MATERIAL',
(SELECT id FROM md_item_category WHERE category_code = 'CAT-RM-PLATE'),
'500*600*2.5', NULL, '钢板', 'SAP440',
500.000, 600.000, 2.500, 7850.000, 5.887500, 5.887500,
(SELECT id FROM md_unit WHERE unit_code = 'KG'),
(SELECT id FROM md_unit WHERE unit_code = 'KG'),
(SELECT id FROM md_unit WHERE unit_code = 'KG'),
0.000000, 10000.000000,
0.0000, 'ACTIVE', '本体标准板材采购按重量结算采购倍数按2吨'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_item WHERE item_code = 'RM-SAP440-500600-2.5');
INSERT INTO md_item (
item_code, item_name, item_type, category_id, specification, model_no, material_type, material_grade,
length_mm, width_mm, thickness_mm, density_kg_m3, theoretical_weight_kg, unit_weight_kg,
sales_unit_id, stock_unit_id, purchase_unit_id, safety_stock_qty, safety_stock_weight_kg,
scrap_sale_price, status, remark
)
SELECT
'FG-BT-001', '本体', 'FINISHED_GOOD',
(SELECT id FROM md_item_category WHERE category_code = 'CAT-FG-HARDWARE'),
'标准结构件', 'BT-V1', '五金结构件', NULL,
320.000, 145.000, 0.000, 0.000, 5.200000, 5.200000,
(SELECT id FROM md_unit WHERE unit_code = 'PCS'),
(SELECT id FROM md_unit WHERE unit_code = 'PCS'),
(SELECT id FROM md_unit WHERE unit_code = 'PCS'),
500.000000, 0.000000,
0.0000, 'ACTIVE', '宁波百华智能本体示例成品用于演示销售、MRP、工单、成本闭环'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_item WHERE item_code = 'FG-BT-001');
INSERT INTO md_item (
item_code, item_name, item_type, category_id, specification, model_no, material_type, material_grade,
length_mm, width_mm, thickness_mm, density_kg_m3, theoretical_weight_kg, unit_weight_kg,
sales_unit_id, stock_unit_id, purchase_unit_id, safety_stock_qty, safety_stock_weight_kg,
scrap_sale_price, status, remark
)
SELECT
'SCR-SAP440-EDGE', 'SAP440边角废料', 'SCRAP',
(SELECT id FROM md_item_category WHERE category_code = 'CAT-SCRAP-METAL'),
'冲压边角料', NULL, '金属废料', 'SAP440',
0.000, 0.000, 0.000, 7850.000, 1.000000, 1.000000,
(SELECT id FROM md_unit WHERE unit_code = 'KG'),
(SELECT id FROM md_unit WHERE unit_code = 'KG'),
(SELECT id FROM md_unit WHERE unit_code = 'KG'),
0.000000, 0.000000,
1.8000, 'ACTIVE', '本体生产过程中产生的可售废料'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_item WHERE item_code = 'SCR-SAP440-EDGE');
-- 原材料扩展
INSERT INTO md_material (
item_id, default_supplier_id, purchase_calc_mode, min_purchase_qty, purchase_multiple_qty,
purchase_multiple_weight_kg, lead_time_days, quality_rule
)
SELECT
(SELECT id FROM md_item WHERE item_code = 'RM-SAP440-500600-2.5'),
(SELECT id FROM md_supplier WHERE supplier_code = 'SUP-NB-JG-001'),
'BY_WEIGHT', 2000.000000, 0.000000, 2000.000000, 5,
'需提供材质证明;来料需检验厚度、表面状态、重量偏差'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM md_material
WHERE item_id = (SELECT id FROM md_item WHERE item_code = 'RM-SAP440-500600-2.5')
);
-- 产品扩展
INSERT INTO md_product (
item_id, drawing_no, product_family, version_no, standard_output_qty,
allowed_scrap_rate, quality_standard
)
SELECT
(SELECT id FROM md_item WHERE item_code = 'FG-BT-001'),
'JH-BT-001', '结构件', 'V1.0', 1.000000, 0.0350,
'尺寸公差控制在图纸范围内;焊点连续;表面无明显压伤、裂纹、毛刺'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM md_product
WHERE item_id = (SELECT id FROM md_item WHERE item_code = 'FG-BT-001')
);
-- BOM
INSERT INTO md_bom (bom_code, product_item_id, version_no, is_default, status, effective_date, expire_date, remark)
SELECT
'BOM-BT-001',
(SELECT id FROM md_item WHERE item_code = 'FG-BT-001'),
'V1.0', 1, 'ACTIVE', CURRENT_DATE(), NULL,
'本体标准BOM单件毛重5.9kg单件净重5.2kg'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_bom WHERE bom_code = 'BOM-BT-001');
INSERT INTO md_bom_item (
bom_id, seq_no, material_item_id, usage_type, qty_per_piece, net_weight_per_piece_kg,
gross_weight_per_piece_kg, loss_rate, issue_over_tolerance_rate, remark
)
SELECT
(SELECT id FROM md_bom WHERE bom_code = 'BOM-BT-001'),
10,
(SELECT id FROM md_item WHERE item_code = 'RM-SAP440-500600-2.5'),
'WEIGHT', 1.000000, 5.200000, 5.900000, 0.1180, 0.0200,
'按单件毛重5.9kg参与MRP按采购2吨倍数向上取整'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM md_bom_item
WHERE bom_id = (SELECT id FROM md_bom WHERE bom_code = 'BOM-BT-001')
AND seq_no = 10
);
-- 工艺路线
INSERT INTO md_process_route (
route_code, route_name, product_item_id, version_no, is_default, status, effective_date, expire_date, remark
)
SELECT
'ROUTE-BT-001', '本体标准工艺路线',
(SELECT id FROM md_item WHERE item_code = 'FG-BT-001'),
'V1.0', 1, 'ACTIVE', CURRENT_DATE(), NULL,
'适用于本体标准批量生产的六道工序路线'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM md_process_route WHERE route_code = 'ROUTE-BT-001');
INSERT INTO md_process_route_operation (
route_id, seq_no, process_id, work_center_id, operation_name,
std_setup_minutes, std_cycle_seconds, std_labor_cost, std_machine_cost, std_outsource_cost,
allowed_scrap_rate, report_required, is_key_operation, status, remark
)
SELECT
(SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001'),
10,
(SELECT id FROM md_process WHERE process_code = 'PROC-KP'),
(SELECT id FROM md_work_center WHERE center_code = 'WC-KP-01'),
'开平',
20.00, 6.00, 0.12, 0.18, 0.00, 0.0050, 1, 0, 'ACTIVE', '板材整平、送料准备'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM md_process_route_operation
WHERE route_id = (SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001')
AND seq_no = 10
);
INSERT INTO md_process_route_operation (
route_id, seq_no, process_id, work_center_id, operation_name,
std_setup_minutes, std_cycle_seconds, std_labor_cost, std_machine_cost, std_outsource_cost,
allowed_scrap_rate, report_required, is_key_operation, status, remark
)
SELECT
(SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001'),
20,
(SELECT id FROM md_process WHERE process_code = 'PROC-CY'),
(SELECT id FROM md_work_center WHERE center_code = 'WC-CY-01'),
'冲压',
45.00, 9.00, 0.34, 0.46, 0.00, 0.0200, 1, 1, 'ACTIVE', '主成形工序,模具与板材波动需重点监控'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM md_process_route_operation
WHERE route_id = (SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001')
AND seq_no = 20
);
INSERT INTO md_process_route_operation (
route_id, seq_no, process_id, work_center_id, operation_name,
std_setup_minutes, std_cycle_seconds, std_labor_cost, std_machine_cost, std_outsource_cost,
allowed_scrap_rate, report_required, is_key_operation, status, remark
)
SELECT
(SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001'),
30,
(SELECT id FROM md_process WHERE process_code = 'PROC-MC'),
(SELECT id FROM md_work_center WHERE center_code = 'WC-MC-01'),
'去毛刺',
15.00, 5.00, 0.08, 0.06, 0.00, 0.0080, 1, 0, 'ACTIVE', '清理毛刺与锐边'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM md_process_route_operation
WHERE route_id = (SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001')
AND seq_no = 30
);
INSERT INTO md_process_route_operation (
route_id, seq_no, process_id, work_center_id, operation_name,
std_setup_minutes, std_cycle_seconds, std_labor_cost, std_machine_cost, std_outsource_cost,
allowed_scrap_rate, report_required, is_key_operation, status, remark
)
SELECT
(SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001'),
40,
(SELECT id FROM md_process WHERE process_code = 'PROC-ZW'),
(SELECT id FROM md_work_center WHERE center_code = 'WC-ZW-01'),
'折弯',
20.00, 8.00, 0.21, 0.22, 0.00, 0.0100, 1, 1, 'ACTIVE', '关键角度成形控制'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM md_process_route_operation
WHERE route_id = (SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001')
AND seq_no = 40
);
INSERT INTO md_process_route_operation (
route_id, seq_no, process_id, work_center_id, operation_name,
std_setup_minutes, std_cycle_seconds, std_labor_cost, std_machine_cost, std_outsource_cost,
allowed_scrap_rate, report_required, is_key_operation, status, remark
)
SELECT
(SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001'),
50,
(SELECT id FROM md_process WHERE process_code = 'PROC-HJ'),
(SELECT id FROM md_work_center WHERE center_code = 'WC-HJ-01'),
'焊接',
30.00, 15.00, 0.48, 0.28, 0.00, 0.0150, 1, 1, 'ACTIVE', '焊缝质量对成品稳定性影响大'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM md_process_route_operation
WHERE route_id = (SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001')
AND seq_no = 50
);
INSERT INTO md_process_route_operation (
route_id, seq_no, process_id, work_center_id, operation_name,
std_setup_minutes, std_cycle_seconds, std_labor_cost, std_machine_cost, std_outsource_cost,
allowed_scrap_rate, report_required, is_key_operation, status, remark
)
SELECT
(SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001'),
60,
(SELECT id FROM md_process WHERE process_code = 'PROC-QA'),
(SELECT id FROM md_work_center WHERE center_code = 'WC-QA-01'),
'检验包装',
12.00, 10.00, 0.14, 0.03, 0.00, 0.0020, 1, 1, 'ACTIVE', '终检不合格件转返工或报废'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM md_process_route_operation
WHERE route_id = (SELECT id FROM md_process_route WHERE route_code = 'ROUTE-BT-001')
AND seq_no = 60
);
-- 设备台账
INSERT INTO em_equipment (
equipment_code, equipment_name, category_name, work_center_id, manufacturer,
model_no, install_date, rated_power_kw, occupied_area_sqm, maintenance_cycle_hours,
last_maintenance_at, next_maintenance_at, status, remark
)
SELECT
'EQ-KP-01', '开平机 01', '开平机',
(SELECT id FROM md_work_center WHERE center_code = 'WC-KP-01'),
'宁波精虎机械', 'KP-1600', '2024-01-15', 18.00, 12.50, 220.00,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 20 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 10 DAY),
'IDLE', '本体板材预处理设备'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_equipment WHERE equipment_code = 'EQ-KP-01');
INSERT INTO em_equipment (
equipment_code, equipment_name, category_name, work_center_id, manufacturer,
model_no, install_date, rated_power_kw, occupied_area_sqm, maintenance_cycle_hours,
last_maintenance_at, next_maintenance_at, status, remark
)
SELECT
'EQ-CY-01', '冲床 01', '冲床',
(SELECT id FROM md_work_center WHERE center_code = 'WC-CY-01'),
'扬力集团', 'JH21-125T', '2024-01-20', 22.00, 16.00, 280.00,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 15 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 7 DAY),
'IDLE', '本体主冲压设备'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_equipment WHERE equipment_code = 'EQ-CY-01');
INSERT INTO em_equipment (
equipment_code, equipment_name, category_name, work_center_id, manufacturer,
model_no, install_date, rated_power_kw, occupied_area_sqm, maintenance_cycle_hours,
last_maintenance_at, next_maintenance_at, status, remark
)
SELECT
'EQ-MC-01', '去毛刺机 01', '去毛刺机',
(SELECT id FROM md_work_center WHERE center_code = 'WC-MC-01'),
'苏州锐虎机电', 'MC-800', '2024-02-08', 7.50, 8.00, 180.00,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 18 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 12 DAY),
'IDLE', '本体去毛刺设备'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_equipment WHERE equipment_code = 'EQ-MC-01');
INSERT INTO em_equipment (
equipment_code, equipment_name, category_name, work_center_id, manufacturer,
model_no, install_date, rated_power_kw, occupied_area_sqm, maintenance_cycle_hours,
last_maintenance_at, next_maintenance_at, status, remark
)
SELECT
'EQ-ZW-01', '折弯机 01', '折弯机',
(SELECT id FROM md_work_center WHERE center_code = 'WC-ZW-01'),
'江苏亚威', 'PBH-110', '2024-02-16', 15.00, 14.00, 240.00,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 22 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 8 DAY),
'IDLE', '本体折弯设备'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_equipment WHERE equipment_code = 'EQ-ZW-01');
INSERT INTO em_equipment (
equipment_code, equipment_name, category_name, work_center_id, manufacturer,
model_no, install_date, rated_power_kw, occupied_area_sqm, maintenance_cycle_hours,
last_maintenance_at, next_maintenance_at, status, remark
)
SELECT
'EQ-HJ-01', '焊机 01', '焊机',
(SELECT id FROM md_work_center WHERE center_code = 'WC-HJ-01'),
'松下焊机', 'YD-350', '2024-03-01', 9.00, 6.00, 160.00,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 12 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 14 DAY),
'IDLE', '本体焊接设备'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_equipment WHERE equipment_code = 'EQ-HJ-01');
INSERT INTO em_equipment (
equipment_code, equipment_name, category_name, work_center_id, manufacturer,
model_no, install_date, rated_power_kw, occupied_area_sqm, maintenance_cycle_hours,
last_maintenance_at, next_maintenance_at, status, remark
)
SELECT
'EQ-QA-01', '终检包装工位 01', '检验工位',
(SELECT id FROM md_work_center WHERE center_code = 'WC-QA-01'),
'百华内部配置', 'QA-STATION', '2024-03-10', 1.50, 4.00, 300.00,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 25 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 20 DAY),
'IDLE', '终检与包装工位'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_equipment WHERE equipment_code = 'EQ-QA-01');
-- 设备保养计划
INSERT INTO em_maintenance_plan (
plan_code, equipment_id, plan_name, maintenance_type, cycle_hours, cycle_days,
last_execute_at, next_execute_at, status, remark
)
SELECT
'MP-EQ-KP-01',
(SELECT id FROM em_equipment WHERE equipment_code = 'EQ-KP-01'),
'开平机周期保养', 'PREVENTIVE', 220.00, 30,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 20 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 10 DAY),
'ACTIVE', '每220小时或每30天执行保养'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_maintenance_plan WHERE plan_code = 'MP-EQ-KP-01');
INSERT INTO em_maintenance_plan (
plan_code, equipment_id, plan_name, maintenance_type, cycle_hours, cycle_days,
last_execute_at, next_execute_at, status, remark
)
SELECT
'MP-EQ-CY-01',
(SELECT id FROM em_equipment WHERE equipment_code = 'EQ-CY-01'),
'冲床周期保养', 'PREVENTIVE', 280.00, 30,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 15 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 7 DAY),
'ACTIVE', '冲床模具与润滑需重点保养'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_maintenance_plan WHERE plan_code = 'MP-EQ-CY-01');
INSERT INTO em_maintenance_plan (
plan_code, equipment_id, plan_name, maintenance_type, cycle_hours, cycle_days,
last_execute_at, next_execute_at, status, remark
)
SELECT
'MP-EQ-MC-01',
(SELECT id FROM em_equipment WHERE equipment_code = 'EQ-MC-01'),
'去毛刺机周期保养', 'PREVENTIVE', 180.00, 30,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 18 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 12 DAY),
'ACTIVE', '砂轮与集尘装置维护'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_maintenance_plan WHERE plan_code = 'MP-EQ-MC-01');
INSERT INTO em_maintenance_plan (
plan_code, equipment_id, plan_name, maintenance_type, cycle_hours, cycle_days,
last_execute_at, next_execute_at, status, remark
)
SELECT
'MP-EQ-ZW-01',
(SELECT id FROM em_equipment WHERE equipment_code = 'EQ-ZW-01'),
'折弯机周期保养', 'PREVENTIVE', 240.00, 30,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 22 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 8 DAY),
'ACTIVE', '液压系统与模具保养'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_maintenance_plan WHERE plan_code = 'MP-EQ-ZW-01');
INSERT INTO em_maintenance_plan (
plan_code, equipment_id, plan_name, maintenance_type, cycle_hours, cycle_days,
last_execute_at, next_execute_at, status, remark
)
SELECT
'MP-EQ-HJ-01',
(SELECT id FROM em_equipment WHERE equipment_code = 'EQ-HJ-01'),
'焊机周期保养', 'PREVENTIVE', 160.00, 30,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 12 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 14 DAY),
'ACTIVE', '焊枪与送丝机构检查'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_maintenance_plan WHERE plan_code = 'MP-EQ-HJ-01');
INSERT INTO em_maintenance_plan (
plan_code, equipment_id, plan_name, maintenance_type, cycle_hours, cycle_days,
last_execute_at, next_execute_at, status, remark
)
SELECT
'MP-EQ-QA-01',
(SELECT id FROM em_equipment WHERE equipment_code = 'EQ-QA-01'),
'终检工位周期保养', 'PREVENTIVE', 300.00, 45,
DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 25 DAY), DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 20 DAY),
'ACTIVE', '量具点检与包装工位维护'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM em_maintenance_plan WHERE plan_code = 'MP-EQ-QA-01');
COMMIT;