From 3d6cedf667e3caa4fa4e44ea6f30f2553d1e68cc Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Fri, 13 Mar 2026 08:34:39 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=9E=91=EC=97=85=EC=9D=BC=EC=A0=95=20?= =?UTF-8?q?=EC=97=85=EC=B2=B4=EB=AA=85=20=EA=B2=80=EC=83=89=20=ED=95=84?= =?UTF-8?q?=ED=84=B0=20=EB=8F=99=EC=9E=91=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 프론트엔드는 company(텍스트)를 보내지만 백엔드는 company_id(정수)만 읽고 있어 업체명 필터가 무시되던 버그 수정. findAll()에서 pc.company_name LIKE 검색 지원 추가. Co-Authored-By: Claude Opus 4.6 --- tkpurchase/api/controllers/scheduleController.js | 3 ++- tkpurchase/api/models/scheduleModel.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tkpurchase/api/controllers/scheduleController.js b/tkpurchase/api/controllers/scheduleController.js index 26d3820..ba1ac98 100644 --- a/tkpurchase/api/controllers/scheduleController.js +++ b/tkpurchase/api/controllers/scheduleController.js @@ -3,8 +3,9 @@ const scheduleModel = require('../models/scheduleModel'); // 일정 목록 async function list(req, res) { try { - const { company_id, date_from, date_to, status, project_id, page, limit } = req.query; + const { company, company_id, date_from, date_to, status, project_id, page, limit } = req.query; const rows = await scheduleModel.findAll({ + company: company || undefined, company_id: company_id ? parseInt(company_id) : undefined, date_from, date_to, diff --git a/tkpurchase/api/models/scheduleModel.js b/tkpurchase/api/models/scheduleModel.js index 66cfcd8..20de57a 100644 --- a/tkpurchase/api/models/scheduleModel.js +++ b/tkpurchase/api/models/scheduleModel.js @@ -1,6 +1,6 @@ const { getPool } = require('./partnerModel'); -async function findAll({ company_id, date_from, date_to, status, project_id, page = 1, limit = 50 } = {}) { +async function findAll({ company, company_id, date_from, date_to, status, project_id, page = 1, limit = 50 } = {}) { const db = getPool(); let sql = `SELECT ps.*, pc.company_name, su.name AS registered_by_name, p.project_name, p.job_no @@ -10,6 +10,7 @@ async function findAll({ company_id, date_from, date_to, status, project_id, pag LEFT JOIN projects p ON ps.project_id = p.project_id WHERE 1=1`; const params = []; + if (company) { sql += ' AND pc.company_name LIKE ?'; params.push('%' + company + '%'); } if (company_id) { sql += ' AND ps.company_id = ?'; params.push(company_id); } if (date_from) { sql += ' AND ps.end_date >= ?'; params.push(date_from); } if (date_to) { sql += ' AND ps.start_date <= ?'; params.push(date_to); }