Files
fad_oa/fad-rolling-mill/seed_data.js

133 lines
10 KiB
JavaScript
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.

const mysql = require('mysql2/promise');
async function run() {
const conn = await mysql.createConnection({
host: '49.232.154.205', port: 13306, user: 'root', password: 'Root@12345',
database: 'fad_oa_dev',
supportBigNumbers: true,
bigNumberStrings: true
});
// 获取真实项目ID避免JS Number精度丢失
const [projs] = await conn.execute('SELECT project_id, project_name FROM fad_rm_project ORDER BY project_id');
const PROJ_A = projs[0].project_id; // 1380mm六辊可逆轧机设备总包项目
const PROJ_B = projs[1].project_id; // 测试项目A
console.log('项目A ID:', PROJ_A, projs[0].project_name);
console.log('项目B ID:', PROJ_B, projs[1].project_name);
console.log('');
// 清除两项目现有数据
const tables = ['fad_rm_budget','fad_rm_tech_plan_item','fad_rm_layout_file','fad_rm_tech_review_item','fad_rm_drawing_design','fad_rm_drawing_review','fad_rm_procurement_progress','fad_rm_mfg_device','fad_rm_drawing_compare','fad_rm_doc_lib','fad_rm_site_mod','fad_rm_shipping_checklist','fad_rm_manual','fad_rm_install_tool','fad_rm_install_feedback','fad_rm_acceptance_checklist','fad_rm_commissioning_checklist'];
for (const t of tables) {
await conn.execute('DELETE FROM ' + t + ' WHERE project_id IN (?,?)', [PROJ_A, PROJ_B]);
}
console.log('已清除两项目旧数据\n');
//==================== 项目A6 done + 5 progress + 6 pending ====================
console.log('--- 项目A1380mm六辊可逆轧机设备总包项目 ---');
await conn.execute("INSERT INTO fad_rm_budget (project_id,category,item,budget_amount,spent_amount,status) VALUES (?,?,?,?,?,?)", [PROJ_A,'电气','主电机','500000','480000','approved']);
await conn.execute("INSERT INTO fad_rm_budget (project_id,category,item,budget_amount,spent_amount,status) VALUES (?,?,?,?,?,?)", [PROJ_A,'机械','轧机机架','800000','790000','approved']);
await conn.execute("INSERT INTO fad_rm_budget (project_id,category,item,budget_amount,spent_amount,status) VALUES (?,?,?,?,?,?)", [PROJ_A,'液压','液压站','300000','290000','approved']);
console.log(' budget: 3条 (全部approved → done)');
await conn.execute("INSERT INTO fad_rm_tech_plan_item (project_id,item_name,description,owner,status) VALUES (?,?,?,?,?)", [PROJ_A,'1380mm六辊轧机技术方案','主传动系统方案设计','张工','approved']);
await conn.execute("INSERT INTO fad_rm_tech_plan_item (project_id,item_name,description,owner,status) VALUES (?,?,?,?,?)", [PROJ_A,'AGC液压系统方案','厚度自动控制系统','李工','pending']);
console.log(' tech_plan: 2条 → progress');
await conn.execute("INSERT INTO fad_rm_layout_file (project_id,file_name,file_type,status) VALUES (?,?,?,?)", [PROJ_A,'车间总布局图','dwg','approved']);
await conn.execute("INSERT INTO fad_rm_layout_file (project_id,file_name,file_type,status) VALUES (?,?,?,?)", [PROJ_A,'设备基础图','pdf','pending']);
console.log(' layout: 2条 → progress');
console.log(' tech_review: 0条 → pending');
await conn.execute("INSERT INTO fad_rm_drawing_design (project_id,drawing_name,drawing_no,drawer,status) VALUES (?,?,?,?,?)", [PROJ_A,'轧机机架装配图','DR-001','王工','approved']);
await conn.execute("INSERT INTO fad_rm_drawing_design (project_id,drawing_name,drawing_no,drawer,status) VALUES (?,?,?,?,?)", [PROJ_A,'主传动系统图','DR-002','王工','approved']);
console.log(' drawing_design: 2条 (全部approved → done)');
console.log(' drawing_review: 0条 → pending');
console.log(' procurement: 0条 → pending');
console.log(' manufacturing: 0条 → pending');
console.log(' drawing_compare: 0条 → pending');
console.log(' doc_lib: 0条 → pending');
console.log(' site_mod: 0条 → pending');
await conn.execute("INSERT INTO fad_rm_shipping_checklist (project_id,item_text,is_checked,sort_order) VALUES (?,?,?,?)", [PROJ_A,'主电机','1','1']);
await conn.execute("INSERT INTO fad_rm_shipping_checklist (project_id,item_text,is_checked,sort_order) VALUES (?,?,?,?)", [PROJ_A,'轧机机架','1','2']);
await conn.execute("INSERT INTO fad_rm_shipping_checklist (project_id,item_text,is_checked,sort_order) VALUES (?,?,?,?)", [PROJ_A,'液压站','1','3']);
console.log(' shipping: 3条 (全部已勾选 → done)');
console.log(' manuals: 0条 → pending');
await conn.execute("INSERT INTO fad_rm_install_tool (project_id,name,spec,qty,unit,status,category) VALUES (?,?,?,?,?,?,?)", [PROJ_A,'千斤顶','50T','4','台','已到位','起重工具']);
await conn.execute("INSERT INTO fad_rm_install_tool (project_id,name,spec,qty,unit,status,category) VALUES (?,?,?,?,?,?,?)", [PROJ_A,'扭力扳手','200N·m','2','把','待确认','安装工具']);
await conn.execute("INSERT INTO fad_rm_install_tool (project_id,name,spec,qty,unit,status,category) VALUES (?,?,?,?,?,?,?)", [PROJ_A,'水平仪','0.02mm/m','1','台','待确认','测量工具']);
console.log(' install_tool: 3条 → progress');
console.log(' install_feedback: 0条 → pending');
console.log(' acceptance: 0条 → pending');
console.log(' commissioning: 0条 → pending');
//==================== 项目B3 done + 8 progress + 6 pending ====================
console.log('\n--- 项目B测试项目A ---');
await conn.execute("INSERT INTO fad_rm_budget (project_id,category,item,budget_amount,spent_amount,status) VALUES (?,?,?,?,?,?)", [PROJ_B,'电气','传感器','50000','30000','approved']);
await conn.execute("INSERT INTO fad_rm_budget (project_id,category,item,budget_amount,spent_amount,status) VALUES (?,?,?,?,?,?)", [PROJ_B,'机械','支架','80000','0','draft']);
console.log(' budget: 2条 (1 approved → progress)');
console.log(' tech_plan: 0条 → pending');
console.log(' layout: 0条 → pending');
await conn.execute("INSERT INTO fad_rm_tech_review_item (project_id,review_type,item_name,conclusion,reviewer) VALUES (?,?,?,?,?)", [PROJ_B,'电气','PLC控制柜方案','approved','赵工']);
await conn.execute("INSERT INTO fad_rm_tech_review_item (project_id,review_type,item_name,conclusion,reviewer) VALUES (?,?,?,?,?)", [PROJ_B,'机械','底座安装方案','pending','钱工']);
console.log(' tech_review: 2条 → progress');
console.log(' drawing_design: 0条 → pending');
await conn.execute("INSERT INTO fad_rm_drawing_review (project_id,drawing_name,drawing_no,reviewer,status) VALUES (?,?,?,?,?)", [PROJ_B,'底座基础图','BASE-001','孙工','approved']);
console.log(' drawing_review: 1条 (approved → done)');
await conn.execute("INSERT INTO fad_rm_procurement_progress (project_id,item_name,supplier_name,amount,current_stage) VALUES (?,?,?,?,?)", [PROJ_B,'电机','上海电机厂','120000','1']);
await conn.execute("INSERT INTO fad_rm_procurement_progress (project_id,item_name,supplier_name,amount,current_stage) VALUES (?,?,?,?,?)", [PROJ_B,'减速机','南京减速机厂','80000','2']);
console.log(' procurement: 2条 → progress');
await conn.execute("INSERT INTO fad_rm_mfg_device (project_id,device_name,spec,supplier_name,delivery_date) VALUES (?,?,?,?,?)", [PROJ_B,'主电机','500kW','上海电机厂','2026-08-15']);
await conn.execute("INSERT INTO fad_rm_mfg_device (project_id,device_name,spec,supplier_name,delivery_date) VALUES (?,?,?,?,?)", [PROJ_B,'减速机','ZLY560','南京减速机厂','2026-09-01']);
console.log(' manufacturing: 2条 → progress');
console.log(' drawing_compare: 0条 → pending');
await conn.execute("INSERT INTO fad_rm_doc_lib (project_id,doc_name,category,version,uploader,description) VALUES (?,?,?,?,?,?)", [PROJ_B,'技术规格书','技术文档','V1.0','周工','电机技术参数']);
await conn.execute("INSERT INTO fad_rm_doc_lib (project_id,doc_name,category,version,uploader,description) VALUES (?,?,?,?,?,?)", [PROJ_B,'检测报告','质检报告','V1.0','吴工','出厂检测报告']);
console.log(' doc_lib: 2条 → progress');
await conn.execute("INSERT INTO fad_rm_site_mod (project_id,device_name,location,mod_reason,status) VALUES (?,?,?,?,?)", [PROJ_B,'底座','基础坑','基础尺寸偏差20mm','pending']);
console.log(' site_mod: 1条 → progress');
console.log(' shipping: 0条 → pending');
await conn.execute("INSERT INTO fad_rm_manual (project_id,manual_name,doc_type,version,description) VALUES (?,?,?,?,?)", [PROJ_B,'操作手册','说明书','V1.0','主电机操作说明']);
await conn.execute("INSERT INTO fad_rm_manual (project_id,manual_name,doc_type,version,description) VALUES (?,?,?,?,?)", [PROJ_B,'维护手册','维护手册','V1.0','日常维护指南']);
console.log(' manuals: 2条 → progress');
console.log(' install_tool: 0条 → pending');
await conn.execute("INSERT INTO fad_rm_install_feedback (project_id,title,location,issue_desc,status) VALUES (?,?,?,?,?)", [PROJ_B,'地脚螺栓孔偏位','基础坑','地脚螺栓孔位偏差5mm','pending']);
await conn.execute("INSERT INTO fad_rm_install_feedback (project_id,title,location,issue_desc,status) VALUES (?,?,?,?,?)", [PROJ_B,'电缆预留不足','电气室','进线电缆预留长度不够','solved']);
console.log(' install_feedback: 2条 → progress');
await conn.execute("INSERT INTO fad_rm_acceptance_checklist (project_id,item_text,is_checked,sort_order) VALUES (?,?,?,?)", [PROJ_B,'设备外观检查','1','1']);
await conn.execute("INSERT INTO fad_rm_acceptance_checklist (project_id,item_text,is_checked,sort_order) VALUES (?,?,?,?)", [PROJ_B,'安装精度检查','1','2']);
await conn.execute("INSERT INTO fad_rm_acceptance_checklist (project_id,item_text,is_checked,sort_order) VALUES (?,?,?,?)", [PROJ_B,'电气接线检查','1','3']);
console.log(' acceptance: 3条 (全部已勾选 → done)');
console.log(' commissioning: 0条 → pending');
await conn.end();
console.log('\n=== 测试数据插入完成 ===');
console.log('项目A: 3 done (budget, drawing_design, shipping) + 3 progress (tech_plan, layout, install_tool) + 11 pending');
console.log('项目B: 2 done (drawing_review, acceptance) + 8 progress + 7 pending');
}
run().catch(e => { console.error(e); process.exit(1); });