IO-2240 total for productive hours in summary

This commit is contained in:
swtmply
2023-04-14 00:40:50 +08:00
parent 0e78cb47f9
commit c62c3fa938

View File

@@ -1,5 +1,5 @@
import { Card, Col, Row, Statistic, Table, Typography } from "antd"; import { Card, Col, Row, Statistic, Table, Typography } from "antd";
import React from "react"; import React, { useMemo } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { createStructuredSelector } from "reselect"; import { createStructuredSelector } from "reselect";
@@ -62,7 +62,7 @@ export function ScoreboardTicketsStats({ data, bodyshop }) {
key: "efficiencyoverperiod", key: "efficiencyoverperiod",
render: (text, record) => render: (text, record) =>
`${( `${(
(record.totalOverPeriod / (record.actualTotalOverPeriod || .1)) * (record.totalOverPeriod / (record.actualTotalOverPeriod || 0.1)) *
100 100
).toFixed(1)} %`, ).toFixed(1)} %`,
}, },
@@ -74,6 +74,23 @@ export function ScoreboardTicketsStats({ data, bodyshop }) {
}) })
: []; : [];
const totalEffieciencyOverPeriod = useMemo(
() =>
Object.keys(data?.employees ?? [])
.map((key) => {
return { employee_number: key, ...data.employees[key] };
})
.map((e) =>
(
(e.totalOverPeriod / (e.actualTotalOverPeriod || 0.1)) *
100
).toFixed(1)
)
.reduce((acc, prev) => acc + Number(prev), 0)
.toFixed(1),
[data]
);
return ( return (
<Card title={t("scoreboard.labels.productivestatistics")}> <Card title={t("scoreboard.labels.productivestatistics")}>
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
@@ -113,6 +130,12 @@ export function ScoreboardTicketsStats({ data, bodyshop }) {
value={data.totalOverPeriod} value={data.totalOverPeriod}
/> />
</Col> </Col>
<Col span={12}>
<Statistic
title={t("scoreboard.labels.efficiencyoverperiod")}
value={`${totalEffieciencyOverPeriod}%`}
/>
</Col>
</Row> </Row>
<Typography.Text type="secondary"> <Typography.Text type="secondary">
{t("scoreboard.labels.calendarperiod")} {t("scoreboard.labels.calendarperiod")}
@@ -121,7 +144,7 @@ export function ScoreboardTicketsStats({ data, bodyshop }) {
<Col md={24} lg={20}> <Col md={24} lg={20}>
<Table <Table
columns={columns} columns={columns}
rowKey='employee_number' rowKey="employee_number"
dataSource={tableData} dataSource={tableData}
id="employee_number" id="employee_number"
scroll={{ y: "300px" }} scroll={{ y: "300px" }}