#
luxiaotao1123
2024-09-26 b0aff204cd0ff448902736e9805f0cc922d3d642
#
4个文件已修改
298 ■■■■■ 已修改文件
zy-acs-flow/src/i18n/en.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/i18n/zh.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/jam/JamList.jsx 294 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/JamController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/i18n/en.js
@@ -580,6 +580,7 @@
                    finish: 'FINISH',
                    fail: 'FAIL',
                    deprecated: 'DEPRECATED',
                    done: "DONE",
                },
            },
        },
zy-acs-flow/src/i18n/zh.js
@@ -579,6 +579,7 @@
                    finish: '已完成',
                    fail: '失败',
                    deprecated: '废弃',
                    done: "完结",
                },
            },
        },
zy-acs-flow/src/page/jam/JamList.jsx
@@ -33,8 +33,9 @@
    FunctionField,
    useNotify,
    useRefresh,
    Count,
} from 'react-admin';
import { Box, Typography, Card, Stack } from '@mui/material';
import { Box, Typography, Card, Stack, useMediaQuery, Tabs, Tab, Divider } from '@mui/material';
import { styled } from '@mui/material/styles';
import JamCreate from "./JamCreate";
import JamPanel from "./JamPanel";
@@ -68,6 +69,9 @@
    <ReferenceInput source="jamAgv" label="table.field.jam.jamAgv" reference="agv" alwaysOn>
        <AutocompleteInput label="table.field.jam.jamAgv" optionText="uuid" filterToQuery={(val) => ({ uuid: val })} />
    </ReferenceInput>,
    <ReferenceInput source="avoAgv" label="table.field.jam.avoAgv" reference="agv" alwaysOn>
        <AutocompleteInput label="table.field.jam.avoAgv" optionText="uuid" filterToQuery={(val) => ({ uuid: val })} />
    </ReferenceInput>,
    <SelectInput source="cycleAvo" label="table.field.jam.cycleAvo"
        choices={[
            { id: 1, name: 'common.enums.true' },
@@ -79,30 +83,27 @@
    <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
    <TextInput source="uuid" label="table.field.jam.uuid" />,
    <TextInput source="name" label="table.field.jam.name" />,
    <ReferenceInput source="jamCode" label="table.field.jam.jamCode" reference="code">
        <AutocompleteInput label="table.field.jam.jamCode" optionText="data" filterToQuery={(val) => ({ data: val })} />
    </ReferenceInput>,
    <ReferenceInput source="jamSeg" label="table.field.jam.jamSeg" reference="segment">
        <AutocompleteInput label="table.field.jam.jamSeg" optionText="id" filterToQuery={(val) => ({ id: val })} />
    </ReferenceInput>,
    <ReferenceInput source="avoAgv" label="table.field.jam.avoAgv" reference="agv">
        <AutocompleteInput label="table.field.jam.avoAgv" optionText="uuid" filterToQuery={(val) => ({ uuid: val })} />
    </ReferenceInput>,
    <ReferenceInput source="avoCode" label="table.field.jam.avoCode" reference="code">
        <AutocompleteInput label="table.field.jam.avoCode" optionText="data" filterToQuery={(val) => ({ data: val })} />
    </ReferenceInput>,
    <ReferenceInput source="avoSeg" label="table.field.jam.avoSeg" reference="segment">
        <AutocompleteInput label="table.field.jam.avoSeg" optionText="id" filterToQuery={(val) => ({ id: val })} />
    </ReferenceInput>,
    <ReferenceInput source="cycleCode" label="table.field.jam.cycleCode" reference="code">
        <AutocompleteInput label="table.field.jam.cycleCode" optionText="data" filterToQuery={(val) => ({ data: val })} />
    </ReferenceInput>,
    <DateInput source="startTime" label="table.field.jam.startTime" />,
    <DateInput source="notifyTime" label="table.field.jam.notifyTime" />,
    <DateInput source="endTime" label="table.field.jam.endTime" />,
    <NumberInput source="duration" label="table.field.jam.duration" />,
    <TextInput source="state" label="table.field.jam.state" />,
    // <TextInput source="name" label="table.field.jam.name" />,
    // <ReferenceInput source="jamCode" label="table.field.jam.jamCode" reference="code">
    //     <AutocompleteInput label="table.field.jam.jamCode" optionText="data" filterToQuery={(val) => ({ data: val })} />
    // </ReferenceInput>,
    // <ReferenceInput source="jamSeg" label="table.field.jam.jamSeg" reference="segment">
    //     <AutocompleteInput label="table.field.jam.jamSeg" optionText="id" filterToQuery={(val) => ({ id: val })} />
    // </ReferenceInput>,
    // <ReferenceInput source="avoCode" label="table.field.jam.avoCode" reference="code">
    //     <AutocompleteInput label="table.field.jam.avoCode" optionText="data" filterToQuery={(val) => ({ data: val })} />
    // </ReferenceInput>,
    // <ReferenceInput source="avoSeg" label="table.field.jam.avoSeg" reference="segment">
    //     <AutocompleteInput label="table.field.jam.avoSeg" optionText="id" filterToQuery={(val) => ({ id: val })} />
    // </ReferenceInput>,
    // <ReferenceInput source="cycleCode" label="table.field.jam.cycleCode" reference="code">
    //     <AutocompleteInput label="table.field.jam.cycleCode" optionText="data" filterToQuery={(val) => ({ data: val })} />
    // </ReferenceInput>,
    // <DateInput source="startTime" label="table.field.jam.startTime" />,
    // <DateInput source="notifyTime" label="table.field.jam.notifyTime" />,
    // <DateInput source="endTime" label="table.field.jam.endTime" />,
    // <NumberInput source="duration" label="table.field.jam.duration" />,
    // <TextInput source="state" label="table.field.jam.state" />,
    <TextInput label="common.field.memo" source="memo" />,
    <SelectInput
@@ -114,13 +115,6 @@
        ]}
    />,
]
const states = [
    { id: 'RUNNING', name: 'page.jam.enums.state.running' },
    { id: 'FINISH', name: 'page.jam.enums.state.finish' },
    { id: 'FAIL', name: 'page.jam.enums.state.fail' },
    { id: 'DEPRECATED', name: 'page.jam.enums.state.deprecated' },
];
const JamList = () => {
    const translate = useTranslate();
@@ -157,7 +151,7 @@
                title={"menu.jam"}
                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
                filters={filters}
                sort={{ field: "create_time", order: "desc" }}
                sort={{ field: "start_time", order: "desc" }}
                actions={(
                    <TopToolbar>
                        <FilterButton />
@@ -167,87 +161,9 @@
                    </TopToolbar>
                )}
                perPage={DEFAULT_PAGE_SIZE}
                filterDefaultValues={{ state: 'RUNNING' }}
            >
                <StyledDatagrid
                    preferenceKey='jam'
                    bulkActionButtons={false}
                    rowClick={(id, resource, record) => false}
                    // expand={() => <JamPanel />}
                    // expandSingle={true}
                    omit={['id', 'uuid', 'cycleCode', 'updateBy', 'updateTime', 'createTime', 'createBy', 'statusBool', 'memo']}
                >
                    <NumberField source="id" />
                    <TextField source="uuid" label="table.field.jam.uuid" />
                    {/* <TextField source="name" label="table.field.jam.name" /> */}
                    <ReferenceField source="jamSeg" label="table.field.jam.jamSeg" reference="segment" link={false} sortable={false}>
                        <FunctionField render={(record) => {
                            return <>{record.groupId} - ({record.serial})</>
                        }} />
                    </ReferenceField>
                    <ReferenceField source="jamAgv" label="table.field.jam.jamAgv" reference="agv" link={false} sortable={false} >
                        <TextField source="uuid" sx={{ fontWeight: 'bold' }} />
                    </ReferenceField>
                    <ReferenceField source="jamCode" label="table.field.jam.jamCode" reference="code" link={false} sortable={false}>
                        <TextField source="data" />
                    </ReferenceField>
                    <ReferenceField source="avoSeg" label="table.field.jam.avoSeg" reference="segment" link={false} sortable={false}>
                        <FunctionField render={(record) => {
                            return <>{record.groupId} - ({record.serial})</>
                        }} />
                    </ReferenceField>
                    <ReferenceField source="avoAgv" label="table.field.jam.avoAgv" reference="agv" link={false} sortable={false}>
                        <TextField source="uuid" sx={{ fontWeight: 'bold' }} />
                    </ReferenceField>
                    <ReferenceField source="avoCode" label="table.field.jam.avoCode" reference="code" link={false} sortable={false}>
                        <TextField source="data" />
                    </ReferenceField>
                    <BooleanField source="cycleAvoBool" label="table.field.jam.cycleAvo" sortable={false} />
                    <ReferenceField source="cycleCode" label="table.field.jam.cycleCode" reference="code" link={false} sortable={false}>
                        <TextField source="data" />
                    </ReferenceField>
                    <DateField source="startTime" label="table.field.jam.startTime" showTime />
                    <DateField source="notifyTime" label="table.field.jam.notifyTime" showTime />
                    <DateField source="endTime" label="table.field.jam.endTime" showTime />
                    <NumberField source="duration" label="table.field.jam.duration" />
                    <FunctionField label="table.field.segment.state" cellClassName="state" render={record => (
                        <>
                            {translate(states.find(item => item.id === record.state)?.name)}
                        </>
                    )} />
                    <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
                        <TextField source="nickname" />
                    </ReferenceField>
                    <DateField source="updateTime" label="common.field.updateTime" showTime />
                    <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
                        <TextField source="nickname" />
                    </ReferenceField>
                    <DateField source="createTime" label="common.field.createTime" showTime />
                    <BooleanField source="statusBool" label="common.field.status" sortable={false} />
                    <TextField source="memo" label="common.field.memo" sortable={false} />
                    <FunctionField label="common.field.opt" cellClassName="opt" render={record => (
                        (record.state === "RUNNING" || record.state === "FINISH") && (
                            <>
                                <ConfirmButton
                                    label="common.action.deprecated"
                                    size="small"
                                    color="primary"
                                    startIcon={<CloseIcon />}
                                    sx={{
                                        padding: '1px',
                                        fontSize: '.75rem',
                                        '& .MuiButton-startIcon': {
                                            marginRight: '2px'
                                        },
                                    }}
                                    data={record.uuid}
                                    onConfirm={() => {
                                        onDeprecated(record.id);
                                    }}
                                />
                            </>
                        )
                    )} />
                </StyledDatagrid>
                <TabbedDatagrid onDeprecated={onDeprecated} />
            </List>
            <JamCreate
                open={createDialog}
@@ -263,4 +179,156 @@
    )
}
const states = [
    { id: 'RUNNING', name: 'page.jam.enums.state.running' },
    { id: 'FINISH', name: 'page.jam.enums.state.finish' },
    { id: 'FAIL', name: 'page.jam.enums.state.fail' },
    { id: 'DEPRECATED', name: 'page.jam.enums.state.deprecated' },
];
const TabbedDatagrid = ({ onDeprecated }) => {
    const translate = useTranslate();
    const { filterValues, setFilters, displayedFilters } = useListContext();
    const isXSmall = useMediaQuery(theme =>
        theme.breakpoints.down('sm')
    );
    const handleChange = useCallback((event, value) => {
        setFilters && setFilters(
            { ...filterValues, state: value },
            displayedFilters
        );
    }, [filterValues, setFilters, displayedFilters]);
    return (
        <>
            <Tabs
                variant="fullWidth"
                centered
                value={filterValues.state}
                indicatorColor="primary"
                onChange={handleChange}
            >
                {states.map(item => {
                    return <Tab
                        key={item.id}
                        value={item.id}
                        label={
                            <span style={{ fontWeight: 'bold' }}>
                                <span >
                                    {translate(item.name)}
                                </span>
                                &nbsp;
                                (
                                <Count
                                    filter={{
                                        ...filterValues,
                                        state: item.id,
                                    }}
                                    sx={{ lineHeight: 'inherit' }}
                                />
                                )
                            </span>
                        }
                    />
                })}
            </Tabs>
            <Divider />
            {(isXSmall || true) && (
                <>
                    {(
                        filterValues.state === 'RUNNING'
                        || filterValues.state === 'FINISH'
                        || filterValues.state === 'FAIL'
                        || filterValues.state === 'DEPRECATED'
                    )
                        && (
                            <>
                                <StyledDatagrid
                                    preferenceKey='jam'
                                    bulkActionButtons={false}
                                    rowClick={(id, resource, record) => false}
                                    // expand={() => <JamPanel />}
                                    // expandSingle={true}
                                    omit={['id', 'uuid', 'cycleCode', 'updateBy', 'updateTime', 'createTime', 'createBy', 'statusBool', 'memo']}
                                >
                                    <NumberField source="id" />
                                    <TextField source="uuid" label="table.field.jam.uuid" />
                                    {/* <TextField source="name" label="table.field.jam.name" /> */}
                                    <ReferenceField source="jamSeg" label="table.field.jam.jamSeg" reference="segment" link={false} sortable={false}>
                                        <FunctionField render={(record) => {
                                            return <>{record.groupId} - ({record.serial})</>
                                        }} />
                                    </ReferenceField>
                                    <ReferenceField source="jamAgv" label="table.field.jam.jamAgv" reference="agv" link={false} sortable={false} >
                                        <TextField source="uuid" sx={{ fontWeight: 'bold' }} />
                                    </ReferenceField>
                                    <ReferenceField source="jamCode" label="table.field.jam.jamCode" reference="code" link={false} sortable={false}>
                                        <TextField source="data" />
                                    </ReferenceField>
                                    <ReferenceField source="avoSeg" label="table.field.jam.avoSeg" reference="segment" link={false} sortable={false}>
                                        <FunctionField render={(record) => {
                                            return <>{record.groupId} - ({record.serial})</>
                                        }} />
                                    </ReferenceField>
                                    <ReferenceField source="avoAgv" label="table.field.jam.avoAgv" reference="agv" link={false} sortable={false}>
                                        <TextField source="uuid" sx={{ fontWeight: 'bold' }} />
                                    </ReferenceField>
                                    <ReferenceField source="avoCode" label="table.field.jam.avoCode" reference="code" link={false} sortable={false}>
                                        <TextField source="data" />
                                    </ReferenceField>
                                    <BooleanField source="cycleAvoBool" label="table.field.jam.cycleAvo" sortable={false} />
                                    <ReferenceField source="cycleCode" label="table.field.jam.cycleCode" reference="code" link={false} sortable={false}>
                                        <TextField source="data" />
                                    </ReferenceField>
                                    <DateField source="startTime" label="table.field.jam.startTime" showTime />
                                    <DateField source="notifyTime" label="table.field.jam.notifyTime" showTime />
                                    <DateField source="endTime" label="table.field.jam.endTime" showTime />
                                    <NumberField source="duration" label="table.field.jam.duration" />
                                    <FunctionField label="table.field.segment.state" cellClassName="state" render={record => (
                                        <>
                                            {translate(states.find(item => item.id === record.state)?.name)}
                                        </>
                                    )} />
                                    <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
                                        <TextField source="nickname" />
                                    </ReferenceField>
                                    <DateField source="updateTime" label="common.field.updateTime" showTime />
                                    <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
                                        <TextField source="nickname" />
                                    </ReferenceField>
                                    <DateField source="createTime" label="common.field.createTime" showTime />
                                    <BooleanField source="statusBool" label="common.field.status" sortable={false} />
                                    <TextField source="memo" label="common.field.memo" sortable={false} />
                                    <FunctionField label="common.field.opt" cellClassName="opt" render={record => (
                                        (record.state === "RUNNING") && (
                                            <>
                                                <ConfirmButton
                                                    label="common.action.deprecated"
                                                    size="small"
                                                    color="primary"
                                                    startIcon={<CloseIcon />}
                                                    sx={{
                                                        padding: '1px',
                                                        fontSize: '.75rem',
                                                        '& .MuiButton-startIcon': {
                                                            marginRight: '2px'
                                                        },
                                                    }}
                                                    data={record.uuid}
                                                    onConfirm={() => {
                                                        onDeprecated(record.id);
                                                    }}
                                                />
                                            </>
                                        )
                                    )} />
                                </StyledDatagrid>
                            </>
                        )}
                </>
            )}
        </>
    )
}
export default JamList;
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/JamController.java
@@ -31,7 +31,7 @@
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Jam, BaseParam> pageParam = new PageParam<>(baseParam, Jam.class);
        return R.ok().add(jamService.page(pageParam, pageParam.buildWrapper(true)));
        return R.ok().add(jamService.page(pageParam, pageParam.buildWrapper(true, "start_time")));
    }
    @PreAuthorize("hasAuthority('manager:jam:list')")