Untitled
// Lấy ra tổng số lượng đăng kiểm của 12 tháng gần nhất CÓ ĐĂNG KIỂM của centre mà staff đang làm việc exports.countInspectionEachCenterLastTwelveMonths = async (req, res) => { let queryString = utils.generateQueryStringWithDate( req.query, "inspection_date" ); connection.query( `SELECT EXTRACT(MONTH FROM inspection_date) AS month, EXTRACT(YEAR FROM inspection_date) AS year FROM inspections WHERE ${queryString ? queryString : "1"} AND centre_id = ? ORDER BY inspection_date DESC LIMIT 12;`, [req.params.centre_id], (err, result, fields) => { if (err) { return res.status(500).json({ status: "Failed", error: err, }); } else { // Process the raw result to calculate counts per monthYear const counts = result.reduce((acc, row) => { const monthYear = `${row.month}/${row.year}`; acc[monthYear] = (acc[monthYear] || 0) + 1; return acc; }, {}); // Convert the counts object to an array of objects const data = Object.entries(counts).map( ([monthYear, count]) => ({ monthYear, count, }) ); return res.status(200).json({ status: "Success", data, }); } } ); };
Leave a Comment