[agent-pipeline] pipe-20260305181927-h4x5 round-1
This commit is contained in:
@@ -77,9 +77,12 @@ export class ApprovalDefinitionController {
|
||||
}
|
||||
|
||||
const { id } = req.params;
|
||||
// SUPER_ADMIN은 company_code 필터 없이 조회 가능
|
||||
const row = await queryOne<any>(
|
||||
"SELECT * FROM approval_definitions WHERE definition_id = $1 AND company_code = $2",
|
||||
[id, companyCode]
|
||||
companyCode === "*"
|
||||
? "SELECT * FROM approval_definitions WHERE definition_id = $1"
|
||||
: "SELECT * FROM approval_definitions WHERE definition_id = $1 AND company_code = $2",
|
||||
companyCode === "*" ? [id] : [id, companyCode]
|
||||
);
|
||||
|
||||
if (!row) {
|
||||
@@ -307,12 +310,18 @@ export class ApprovalTemplateController {
|
||||
}
|
||||
|
||||
const { id } = req.params;
|
||||
// SUPER_ADMIN은 company_code 필터 없이 조회 가능
|
||||
const template = await queryOne<any>(
|
||||
`SELECT t.*, d.definition_name
|
||||
FROM approval_line_templates t
|
||||
LEFT JOIN approval_definitions d ON t.definition_id = d.definition_id AND t.company_code = d.company_code
|
||||
WHERE t.template_id = $1 AND t.company_code = $2`,
|
||||
[id, companyCode]
|
||||
companyCode === "*"
|
||||
? `SELECT t.*, d.definition_name
|
||||
FROM approval_line_templates t
|
||||
LEFT JOIN approval_definitions d ON t.definition_id = d.definition_id AND t.company_code = d.company_code
|
||||
WHERE t.template_id = $1`
|
||||
: `SELECT t.*, d.definition_name
|
||||
FROM approval_line_templates t
|
||||
LEFT JOIN approval_definitions d ON t.definition_id = d.definition_id AND t.company_code = d.company_code
|
||||
WHERE t.template_id = $1 AND t.company_code = $2`,
|
||||
companyCode === "*" ? [id] : [id, companyCode]
|
||||
);
|
||||
|
||||
if (!template) {
|
||||
@@ -320,8 +329,10 @@ export class ApprovalTemplateController {
|
||||
}
|
||||
|
||||
const steps = await query<any>(
|
||||
"SELECT * FROM approval_line_template_steps WHERE template_id = $1 AND company_code = $2 ORDER BY step_order ASC",
|
||||
[id, companyCode]
|
||||
companyCode === "*"
|
||||
? "SELECT * FROM approval_line_template_steps WHERE template_id = $1 ORDER BY step_order ASC"
|
||||
: "SELECT * FROM approval_line_template_steps WHERE template_id = $1 AND company_code = $2 ORDER BY step_order ASC",
|
||||
companyCode === "*" ? [id] : [id, companyCode]
|
||||
);
|
||||
|
||||
return res.json({ success: true, data: { ...template, steps } });
|
||||
@@ -640,14 +651,15 @@ export class ApprovalRequestController {
|
||||
const offset = (parseInt(page as string) - 1) * parseInt(limit as string);
|
||||
const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
||||
|
||||
// 카운트 쿼리는 LIMIT/OFFSET 파라미터 없이 실행
|
||||
// countParams는 WHERE 조건 파라미터만 포함 (LIMIT/OFFSET 제외)
|
||||
// my_approvals 파라미터도 포함된 후 복사해야 함
|
||||
const countParams = [...params];
|
||||
const [countRow] = await query<any>(
|
||||
`SELECT COUNT(*) as total FROM approval_requests r ${whereClause}`,
|
||||
countParams
|
||||
);
|
||||
|
||||
// LIMIT/OFFSET 파라미터 인덱스를 미리 계산
|
||||
// LIMIT/OFFSET 파라미터 인덱스를 미리 계산 (countParams 복사 후에 idx 증가)
|
||||
const limitIdx = idx++;
|
||||
const offsetIdx = idx++;
|
||||
params.push(parseInt(limit as string), offset);
|
||||
@@ -688,12 +700,18 @@ export class ApprovalRequestController {
|
||||
}
|
||||
|
||||
const { id } = req.params;
|
||||
// SUPER_ADMIN은 company_code 필터 없이 모든 요청 조회 가능
|
||||
const request = await queryOne<any>(
|
||||
`SELECT r.*, d.definition_name
|
||||
FROM approval_requests r
|
||||
LEFT JOIN approval_definitions d ON r.definition_id = d.definition_id AND r.company_code = d.company_code
|
||||
WHERE r.request_id = $1 AND r.company_code = $2`,
|
||||
[id, companyCode]
|
||||
companyCode === "*"
|
||||
? `SELECT r.*, d.definition_name
|
||||
FROM approval_requests r
|
||||
LEFT JOIN approval_definitions d ON r.definition_id = d.definition_id AND r.company_code = d.company_code
|
||||
WHERE r.request_id = $1`
|
||||
: `SELECT r.*, d.definition_name
|
||||
FROM approval_requests r
|
||||
LEFT JOIN approval_definitions d ON r.definition_id = d.definition_id AND r.company_code = d.company_code
|
||||
WHERE r.request_id = $1 AND r.company_code = $2`,
|
||||
companyCode === "*" ? [id] : [id, companyCode]
|
||||
);
|
||||
|
||||
if (!request) {
|
||||
@@ -701,8 +719,10 @@ export class ApprovalRequestController {
|
||||
}
|
||||
|
||||
const lines = await query<any>(
|
||||
"SELECT * FROM approval_lines WHERE request_id = $1 AND company_code = $2 ORDER BY step_order ASC",
|
||||
[id, companyCode]
|
||||
companyCode === "*"
|
||||
? "SELECT * FROM approval_lines WHERE request_id = $1 ORDER BY step_order ASC"
|
||||
: "SELECT * FROM approval_lines WHERE request_id = $1 AND company_code = $2 ORDER BY step_order ASC",
|
||||
companyCode === "*" ? [id] : [id, companyCode]
|
||||
);
|
||||
|
||||
return res.json({ success: true, data: { ...request, lines } });
|
||||
|
||||
Reference in New Issue
Block a user