import dotenv from 'dotenv'; dotenv.config(); import mysql from 'mysql2/promise'; async function main() { const pool = mysql.createPool({ host: process.env.DB_HOST, port: Number(process.env.DB_PORT), user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, }); // Check rent_status_check table structure const [checkCols] = await pool.query(` SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='lingniu_prod3' AND TABLE_NAME='tab_truck_rent_status_check' ORDER BY ORDINAL_POSITION `); console.log('=== tab_truck_rent_status_check columns ==='); for (const c of checkCols as any[]) { console.log(` ${c.COLUMN_NAME} (${c.DATA_TYPE}) — ${c.COLUMN_COMMENT || ''}`); } // Weekly stats: is_operation set to 1 this week (newly added to operation) const [newOp] = await pool.query(` SELECT COUNT(*) AS cnt FROM tab_truck WHERE is_deleted=0 AND is_operation=1 AND create_time >= DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE())+2 DAY) `); console.log('\n=== This week new (by create_time, since last Saturday) ==='); console.log(JSON.stringify(newOp)); // Pending delivery count (status=7) const [pending] = await pool.query(` SELECT COUNT(*) AS cnt FROM tab_truck WHERE is_deleted=0 AND is_operation=1 AND truck_rent_status=7 `); console.log('\n=== Pending delivery (status=7) ==='); console.log(JSON.stringify(pending)); // Weekly deliveries (take_date this week) const [delivered] = await pool.query(` SELECT COUNT(*) AS cnt FROM tab_truck_status_info WHERE is_deleted=0 AND take_date >= DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE())+2 DAY) AND take_date < DATE_ADD(DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE())+2 DAY), INTERVAL 7 DAY) `); console.log('\n=== This week delivered (by take_date) ==='); console.log(JSON.stringify(delivered)); // Weekly returns (return_date this week) const [returned] = await pool.query(` SELECT COUNT(*) AS cnt FROM tab_truck_status_info WHERE is_deleted=0 AND return_date >= DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE())+2 DAY) AND return_date < DATE_ADD(DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE())+2 DAY), INTERVAL 7 DAY) `); console.log('\n=== This week returned (by return_date) ==='); console.log(JSON.stringify(returned)); // return_change_record values const [rcValues] = await pool.query(` SELECT return_change_record, COUNT(*) AS cnt FROM tab_truck_status_info WHERE is_deleted=0 GROUP BY return_change_record `); console.log('\n=== return_change_record values ==='); console.log(JSON.stringify(rcValues)); // Check aa_temp table const [tempCols] = await pool.query(` SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='lingniu_prod3' AND TABLE_NAME='tab_aa_temp_truck_rent_status' ORDER BY ORDINAL_POSITION `); console.log('\n=== tab_aa_temp_truck_rent_status columns ==='); for (const c of tempCols as any[]) { console.log(` ${c.COLUMN_NAME} (${c.DATA_TYPE}) — ${c.COLUMN_COMMENT || ''}`); } await pool.end(); } main();