feat: 프론트 리워크 추적 — 접수 시 rework_source_id 자동 전달
This commit is contained in:
@@ -723,6 +723,7 @@ export function WorkOrderList() {
|
||||
processName: string;
|
||||
seqNo: string;
|
||||
maxQty: number;
|
||||
reworkSourceId?: string;
|
||||
}>({ open: false, processId: "", processName: "", seqNo: "", maxQty: 0 });
|
||||
const [acceptLoading, setAcceptLoading] = useState(false);
|
||||
|
||||
@@ -972,14 +973,14 @@ export function WorkOrderList() {
|
||||
}, [masterProcesses, selectedProcess, selectedEquipment, instructionMap, equipmentMap]);
|
||||
|
||||
/* ---- Accept handler ---- */
|
||||
const openAcceptModal = async (processId: string, processName: string, seqNo: string) => {
|
||||
const openAcceptModal = async (processId: string, processName: string, seqNo: string, reworkSourceId?: string) => {
|
||||
try {
|
||||
const res = await apiClient.get("/pop/production/available-qty", {
|
||||
params: { work_order_process_id: processId },
|
||||
});
|
||||
const data = res.data?.data;
|
||||
const maxQty = data?.availableQty ?? 0;
|
||||
setAcceptModal({ open: true, processId, processName, seqNo, maxQty });
|
||||
setAcceptModal({ open: true, processId, processName, seqNo, maxQty, reworkSourceId });
|
||||
} catch {
|
||||
alert("접수가능량 조회 실패");
|
||||
}
|
||||
@@ -988,10 +989,15 @@ export function WorkOrderList() {
|
||||
const handleAccept = async (qty: number) => {
|
||||
setAcceptLoading(true);
|
||||
try {
|
||||
const res = await apiClient.post("/pop/production/accept-process", {
|
||||
const body: Record<string, unknown> = {
|
||||
work_order_process_id: acceptModal.processId,
|
||||
accept_qty: qty,
|
||||
});
|
||||
};
|
||||
// 리워크 추적: rework_source_id가 있으면 전달 (원점 복귀 추적)
|
||||
if (acceptModal.reworkSourceId) {
|
||||
body.rework_source_id = acceptModal.reworkSourceId;
|
||||
}
|
||||
const res = await apiClient.post("/pop/production/accept-process", body);
|
||||
if (res.data?.success) {
|
||||
setAcceptModal((m) => ({ ...m, open: false }));
|
||||
await fetchAll();
|
||||
@@ -1426,7 +1432,7 @@ export function WorkOrderList() {
|
||||
{/* Action button (full width, bottom) */}
|
||||
{isRework && proc.status === "acceptable" && (
|
||||
<button
|
||||
onClick={() => openAcceptModal(proc.id, proc.process_name, proc.seq_no)}
|
||||
onClick={() => openAcceptModal(proc.id, proc.process_name, proc.seq_no, (proc as Record<string, unknown>).rework_source_id as string | undefined)}
|
||||
className="w-full py-3.5 text-sm font-bold text-white active:scale-[0.98] transition-all"
|
||||
style={{ background: "linear-gradient(to bottom, #fb923c, #ea580c)" }}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user