#
luxiaotao1123
2024-09-29 e4fead2e56d729d91be4ad9d7241bbe30f5af378
#
5个文件已修改
71 ■■■■ 已修改文件
zy-acs-flow/src/config/setting.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/agv/AgvList.jsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/mission/MissionCard.jsx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/mission/MissionListContent.jsx 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/config/setting.js
@@ -36,3 +36,5 @@
export const EDIT_MODE = 'pessimistic'; // pessimistic | undoable
export const LOGIN_BACKGROUND = 'media';  // image | media
export const CUSTOM_PAGES_DATA_INTERVAL = 1000;
zy-acs-flow/src/page/agv/AgvList.jsx
@@ -45,7 +45,7 @@
import MyExportButton from '../components/MyExportButton';
import PageDrawer from "../components/PageDrawer";
import MyField from "../components/MyField";
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, CUSTOM_PAGES_DATA_INTERVAL } from '@/config/setting';
import * as Common from '@/utils/common';
import { ImageList } from "./GridList";
import { AgvListFilter } from "./AgvListFilter";
@@ -69,16 +69,16 @@
}
const AgvGridLayout = ({ setCreateDialog }) => {
    const refresh = useRefresh();
    const { data, isPending, filterValues } = useListContext();
    const { data, isPending, filterValues, refetch } = useListContext();
    const hasFilters = filterValues && Object.keys(filterValues).length > 0;
    React.useEffect(() => {
        const intervalId = setInterval(() => {
            refresh();
        }, 2000);
            refetch();
        }, CUSTOM_PAGES_DATA_INTERVAL);
        return () => clearInterval(intervalId);
    }, [refresh]);
    }, [refetch]);
    if (isPending) return null;
    if (!data?.length && !hasFilters) return <EmptyData onClick={() => { setCreateDialog(true) }} />;
zy-acs-flow/src/page/mission/MissionCard.jsx
@@ -28,9 +28,6 @@
        });
    };
    console.log(mission);
    return (
        <Box
            sx={{ marginBottom: 1, cursor: 'pointer' }}
zy-acs-flow/src/page/mission/MissionListContent.jsx
@@ -10,6 +10,7 @@
} from 'react-admin';
import { MissionColumn } from './MissionColumn';
import request from '@/utils/request';
import { CUSTOM_PAGES_DATA_INTERVAL } from '@/config/setting';
export const MissionListContent = () => {
    const translate = useTranslate();
@@ -34,7 +35,15 @@
            })
        }
        httpStages();
    }, []);
    }, [notify]);
    useEffect(() => {
        const intervalId = setInterval(() => {
            refetch();
        }, CUSTOM_PAGES_DATA_INTERVAL);
        return () => clearInterval(intervalId);
    }, [data, refetch])
    useEffect(() => {
        // if (data) {
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java
@@ -3,10 +3,12 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.manager.manager.controller.result.MissionVo;
import com.zy.acs.manager.manager.entity.Action;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.Segment;
import com.zy.acs.manager.manager.enums.SegmentStateType;
import com.zy.acs.manager.manager.service.MissionService;
import com.zy.acs.manager.manager.service.SegmentService;
import com.zy.acs.manager.manager.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -22,6 +24,12 @@
    @Autowired
    private SegmentService segmentService;
    @Autowired
    private ActionService actionService;
    @Autowired
    private CodeService codeService;
    @Autowired
    private AgvDetailService agvDetailService;
    @Override
    public List<MissionVo> getList(Long agvId, String groupNo) {
@@ -52,7 +60,38 @@
        vo.setTaskNos(list.stream().map(Segment::getTaskId$).collect(Collectors.toList()));
        vo.setBackpack(segment.getBackpack());
        vo.setDestCode(segment.getEndNode$());
        vo.setProgress(calcProgress(groupNo));
        return vo;
    }
    public Double calcProgress(String groupNo) {
        double progress = 0D;
        List<Action> actionList = actionService.list(new LambdaQueryWrapper<Action>()
                .eq(Action::getGroupId, groupNo).
                        orderByDesc(Action::getPriority));
        if (Cools.isEmpty(actionList)) {
            return progress;
        }
        Action action = actionList.get(0);
        AgvDetail agvDetail = agvDetailService.selectByAgvId(action.getAgvId());
        Long recentCode = agvDetail.getRecentCode();
        if (null == recentCode) {
            return progress;
        }
        Code code = codeService.getById(recentCode);
        List<String> codeList = actionList.stream().map(Action::getCode).collect(Collectors.toList());
        int totalCodes = codeList.size();
        int currentIndex = codeList.indexOf(code.getData());
        if (currentIndex >= 0) {
            progress = (currentIndex + 1) * 100.0 / totalCodes;
        }
        return progress;
    }
}