fix: 접수가능 이중 집계 버그 수정 + 바텀바 삭제

- available-qty: master+SPLIT 이중 합산 → SPLIT만 합산 (5곳)
- 원인: master에 합산된 good_qty와 SPLIT의 good_qty가 중복 카운트
- PopShell: 하단 footer(copyright/version/긴급연락) 삭제
This commit is contained in:
SeongHyun Kim
2026-04-06 11:47:13 +09:00
parent ac913990a3
commit 78f959c091
2 changed files with 12 additions and 17 deletions

View File

@@ -1051,7 +1051,8 @@ export const saveResult = async (
if (csSeqNum > 1) {
const prev = await pool.query(
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as tg
FROM work_order_process WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
FROM work_order_process WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
AND parent_process_id IS NOT NULL`,
[csWoId, String(csSeqNum - 1), companyCode]
);
if (prev.rowCount > 0) csPrevGood = parseInt(prev.rows[0].tg, 10) || 0;
@@ -1196,7 +1197,8 @@ const checkAndCompleteWorkInstruction = async (
const totalGoodResult = await pool.query(
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as total_good
FROM work_order_process
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
AND parent_process_id IS NOT NULL`,
[woId, maxSeq, companyCode]
);
@@ -1394,7 +1396,8 @@ export const confirmResult = async (
const prevProcess = await pool.query(
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as total_good
FROM work_order_process
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
AND parent_process_id IS NOT NULL`,
[wo_id, prevSeq, companyCode]
);
if (prevProcess.rowCount > 0) {
@@ -1595,14 +1598,15 @@ export const getAvailableQty = async (req: AuthenticatedRequest, res: Response)
);
const myInputQty = parseInt(totalAccepted.rows[0].total_input, 10) || 0;
// 앞공정 양품+특채 합산
// 앞공정 양품+특채 합산 (SPLIT만 — master 이중 집계 방지)
let prevGoodQty = instrQty;
if (seqNum > 1) {
const prevSeq = String(seqNum - 1);
const prevProcess = await pool.query(
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as total_good
FROM work_order_process
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
AND parent_process_id IS NOT NULL`,
[wo_id, prevSeq, companyCode]
);
if (prevProcess.rowCount > 0) {
@@ -1723,7 +1727,8 @@ export const acceptProcess = async (req: AuthenticatedRequest, res: Response) =>
const prevProcess = await client.query(
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as total_good
FROM work_order_process
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
AND parent_process_id IS NOT NULL`,
[row.wo_id, prevSeq, companyCode]
);
if (prevProcess.rowCount > 0) {

View File

@@ -318,17 +318,7 @@ export function PopShell({ children, showBanner = true, title, showBack = false,
{children}
</main>
{/* ===== FOOTER ===== */}
<footer className="border-t border-gray-200 bg-white px-4 sm:px-6 lg:px-8 py-3 sm:py-4">
<div className="max-w-[1400px] mx-auto flex flex-col sm:flex-row items-center justify-between gap-2 text-xs text-gray-400">
<span>&copy; {new Date().getFullYear()} {user?.companyName || "VEXPLOR"}. All rights reserved.</span>
<div className="flex items-center gap-3 sm:gap-4">
<span>Version 1.0.0</span>
<span className="hidden sm:inline">|</span>
<span>긴급연락: 042-XXX-XXXX</span>
</div>
</div>
</footer>
{/* FOOTER 삭제 — POP 화면에서 불필요 */}
{/* Marquee keyframes */}
<style jsx global>{`