import { Card, CardContent, Stack, Typography } from "@mui/material"; import dayjs from "dayjs"; import { OUTPUT_DATE_FORMAT } from "@/app/utils/formatUtil"; import { useTranslation } from "react-i18next"; import { ProductProcessWithLinesResponse } from "@/app/api/jo/actions"; interface Props { processData?: ProductProcessWithLinesResponse | null; } const ProcessSummaryHeader: React.FC = ({ processData }) => { const { t } = useTranslation(["common", "jo"]); // 计算 Assume Time Need:从所有 productProcessLines 的 durationInMinutes 求和 const assumeTimeNeed = processData?.productProcessLines?.reduce( (sum, line) => sum + (line.durationInMinutes || 0), 0 ) || 0; // Start Time:使用 processData.startTime const startTime = processData?.startTime; // Assume End Time:Start Time + Assume Time Need(分钟) const assumeEndTime = startTime ? dayjs(startTime).add(assumeTimeNeed, 'minute') : null; return ( {t("Job Order Code")}: {processData?.jobOrderCode} {t("Item")}: {processData?.itemCode+"-"+processData?.itemName} {t("Job Type")}: {t(processData?.jobType ?? "")} {t("Qty")}: {processData?.outputQty} ({processData?.outputQtyUom ?? ""}) {t("Production Date")}: {processData?.date ? dayjs(processData.date).format(OUTPUT_DATE_FORMAT) : ""} {t("Assume Time Need")}: {assumeTimeNeed} {t("minutes")} {t("Start Time")}: {startTime ? ( <> {dayjs(startTime).format("MM-DD")} {" "} {dayjs(startTime).format("HH:mm")} ) : "-"} {t("Assume End Time")}: {assumeEndTime ? ( <> {assumeEndTime.format("MM-DD")} {" "} {assumeEndTime.format("HH:mm")} ) : "-"} ); }; export default ProcessSummaryHeader;