#
luxiaotao1123
2024-09-24 d6e48b72f0b7afd70205d6e88b3f336264891cc3
#
11个文件已修改
205 ■■■■ 已修改文件
zy-acs-flow/src/i18n/core/chineseMessages.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/i18n/en.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/i18n/zh.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/bus/BusList.jsx 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/task/TaskList.jsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-framework/src/main/resources/templates/react-admin/ReactList.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Bus.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/i18n/core/chineseMessages.js
@@ -19,7 +19,7 @@
            refresh: '刷新',
            remove_filter: 'Remove this filter',
            remove_all_filters: '移除所有',
            remove: 'Remove',
            remove: '移除',
            save: '保存',
            search: '搜索',
            select_all: '全部选中',
zy-acs-flow/src/i18n/en.js
@@ -63,6 +63,7 @@
                result: 'Contacts import complete. Imported %{success} success, with %{error} errors',
            },
            loadMore: 'Load More Data',
            complete: 'Complete',
        },
        msg: {
            confirm: {
zy-acs-flow/src/i18n/zh.js
@@ -63,6 +63,7 @@
                result: '导入完成。已导入 %{success} 成功, 和 %{error} 失败',
            },
            loadMore: '加载更多',
            complete: '完成',
        },
        msg: {
            confirm: {
zy-acs-flow/src/page/bus/BusList.jsx
@@ -32,6 +32,7 @@
    DeleteButton,
    FunctionField,
    Pagination,
    useNotify,
} from 'react-admin';
import { Box, Typography, Button, Chip } from '@mui/material';
import { styled } from '@mui/material/styles';
@@ -97,13 +98,19 @@
const BusList = () => {
    const translate = useTranslate();
    const notify = useNotify();
    const [createDialog, setCreateDialog] = useState(false);
    const [drawerVal, setDrawerVal] = useState(false);
    const onCancel = (busId) => {
        console.log(busId);
        request.get("/bus/cancel/" + busId).then(res => {
            const { code, msg, data } = res.data;
            if (code === 200) {
                notify(msg || 'common.response.success', { type: 'success', messageArgs: { _: msg } });
            } else {
                notify(msg || 'common.response.fail', { type: 'error', messageArgs: { _: msg } });
            }
        })
    }
    return (
@@ -173,19 +180,6 @@
                    <TextField source="memo" label="common.field.memo" sortable={false} emptyText="-" />
                    <FunctionField label="common.field.opt" cellClassName="opt" render={record => (
                        (record.busSts === 15 || true) && (
                            // <DeleteButton label="" sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
                            // <Button
                            //     size="small"
                            //     color="error"
                            //     startIcon={<CancelIcon />}
                            //     sx={{ padding: '1px', fontSize: '.75rem' }}
                            //     onClick={(event) => {
                            //         event.stopPropagation();
                            //         onCancel(record);
                            //     }}
                            // >
                            //     {translate('ra.action.cancel')}
                            // </Button>
                            <ConfirmButton
                                label="ra.action.cancel"
                                size="small"
zy-acs-flow/src/page/task/TaskList.jsx
@@ -46,6 +46,10 @@
import * as Common from '@/utils/common';
import TaskListAside from "./TaskListAside";
import { getTaskStsChipColor } from '@/utils/color-util';
import ConfirmButton from "../components/ConfirmButton";
import ClearIcon from '@mui/icons-material/Clear';
import CheckIcon from '@mui/icons-material/Check';
import request from '@/utils/request';
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
    '& .css-1vooibu-MuiSvgIcon-root': {
@@ -129,6 +133,28 @@
    const [createDialog, setCreateDialog] = useState(false);
    const [drawerVal, setDrawerVal] = useState(false);
    const onComplete = (taskId) => {
        request.get("/task/complete/" + taskId).then(res => {
            const { code, msg, data } = res.data;
            if (code === 200) {
                notify(msg || 'common.response.success', { type: 'success', messageArgs: { _: msg } });
            } else {
                notify(msg || 'common.response.fail', { type: 'error', messageArgs: { _: msg } });
            }
        })
    }
    const onCancel = (taskId) => {
        request.get("/task/cancel/" + taskId).then(res => {
            const { code, msg, data } = res.data;
            if (code === 200) {
                notify(msg || 'common.response.success', { type: 'success', messageArgs: { _: msg } });
            } else {
                notify(msg || 'common.response.fail', { type: 'error', messageArgs: { _: msg } });
            }
        })
    }
    return (
        <Box display="flex">
@@ -234,10 +260,47 @@
                    <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} />
                    <WrapperField cellClassName="opt" label="common.field.opt">
                        <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
                        <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
                    </WrapperField>
                    <FunctionField label="common.field.opt" cellClassName="opt" render={record => (
                        (record.taskSts === 15 || true) && (
                            <>
                                <ConfirmButton
                                    label="common.action.complete"
                                    size="small"
                                    color="primary"
                                    startIcon={<CheckIcon />}
                                    sx={{
                                        padding: '1px',
                                        fontSize: '.75rem',
                                        '& .MuiButton-startIcon': {
                                            marginRight: '2px'
                                        },
                                        mr: 1
                                    }}
                                    data={record.seqNum}
                                    onConfirm={() => {
                                        onComplete(record.id);
                                    }}
                                />
                                <ConfirmButton
                                    label="ra.action.cancel"
                                    size="small"
                                    color="error"
                                    startIcon={<ClearIcon />}
                                    sx={{
                                        padding: '1px',
                                        fontSize: '.75rem',
                                        '& .MuiButton-startIcon': {
                                            marginRight: '1.5px'
                                        },
                                    }}
                                    data={record.seqNum}
                                    onConfirm={() => {
                                        onCancel(record.id);
                                    }}
                                />
                            </>
                        )
                    )} />
                </StyledDatagrid>
            </List>
            <TaskCreate
zy-acs-framework/src/main/resources/templates/react-admin/ReactList.txt
@@ -14,6 +14,7 @@
    WrapperField,
    useRecordContext,
    useTranslate,
    useNotify,
    useListContext,
    FunctionField,
    TextField,
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java
@@ -15,6 +15,7 @@
import com.zy.acs.manager.manager.entity.Bus;
import com.zy.acs.manager.manager.entity.Task;
import com.zy.acs.manager.manager.enums.BusStsType;
import com.zy.acs.manager.manager.enums.TaskStsType;
import com.zy.acs.manager.manager.service.BusService;
import com.zy.acs.manager.manager.service.LocService;
import com.zy.acs.manager.manager.service.StaService;
@@ -22,6 +23,7 @@
import com.zy.acs.manager.system.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -153,4 +155,34 @@
        ExcelUtil.build(ExcelUtil.create(busService.list(), Bus.class), response);
    }
    @PreAuthorize("hasAuthority('manager:bus:update')")
    @OperationLog("Cancel Bus")
    @GetMapping("/bus/cancel/{id}")
    @Transactional
    public R cancel(@PathVariable Long id) {
        Bus bus = busService.getById(id);
        if (null == bus) {
            return R.error("Cancel Fail");
        }
        if (!bus.getBusStsEl().equals(BusStsType.RECEIVE.toString())) {
            return R.error("Cancel Fail");
        }
        List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>()
                .eq(Task::getBusId, bus.getId())
                .in(Task::getTaskSts, TaskStsType.INIT.val(), TaskStsType.WAITING.val()));
        if (!Cools.isEmpty(taskList)) {
            for (Task task : taskList) {
                taskService.cancel(task.getId(), getLoginUserId());
            }
        }
        bus.setBusSts(BusStsType.CANCEL.val());
        bus.setUpdateTime(new Date());
        bus.setUpdateBy(getLoginUserId());
        if (!busService.updateById(bus)) {
            return R.error("Cancel Fail");
        }
        return R.ok("Cancel Success");
     }
}
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java
@@ -117,4 +117,19 @@
        ExcelUtil.build(ExcelUtil.create(taskService.list(), Task.class), response);
    }
    @PreAuthorize("hasAuthority('manager:task:update')")
    @OperationLog("Complete Task")
    @GetMapping("/task/complete/{id}")
    public R complete(@PathVariable Long id) {
        return taskService.complete(id, getLoginUserId()) ? R.ok("Complete Success") : R.error("Complete Fail");
    }
    @PreAuthorize("hasAuthority('manager:task:update')")
    @OperationLog("Cancel Task")
    @GetMapping("/task/cancel/{id}")
    public R cancel(@PathVariable Long id) {
        return taskService.cancel(id, getLoginUserId()) ? R.ok("Cancel Success") : R.error("Cancel Fail");
    }
}
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Bus.java
@@ -126,19 +126,15 @@
        return null;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "冻结";
            default:
                return String.valueOf(this.status);
    public String getBusStsEl(){
        BusStsService service = SpringUtils.getBean(BusStsService.class);
        BusSts busSts = service.getById(this.busSts);
        if (!Cools.isEmpty(busSts)){
            return String.valueOf(busSts.getUuid());
        }
        return null;
    }
    public Boolean getStatusBool(){
        if (null == this.status){ return null; }
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java
@@ -23,4 +23,8 @@
    List<Map<String, Object>> selectStatByLastSevenDays();
    Boolean complete(Long taskId, Long userId);
    Boolean cancel(Long taskId, Long userId);
}
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java
@@ -2,8 +2,10 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.acs.framework.common.BaseRes;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.framework.exception.CoolException;
import com.zy.acs.manager.common.exception.BusinessException;
import com.zy.acs.manager.manager.entity.FuncSta;
import com.zy.acs.manager.manager.entity.Loc;
@@ -141,5 +143,37 @@
        return this.baseMapper.selectStatByLastSevenDays();
    }
    @Override
    public Boolean complete(Long taskId, Long userId) {
        Task task = this.getById(taskId);
        if (null == task) {
            return Boolean.FALSE;
        }
        task.setTaskSts(TaskStsType.COMPLETE.val());
        task.setUpdateTime(new Date());
        task.setUpdateBy(userId);
        if (!this.updateById(task)) {
            throw new CoolException(BaseRes.ERROR);
        }
        return Boolean.TRUE;
    }
    @Override
    public Boolean cancel(Long taskId, Long userId) {
        Task task = this.getById(taskId);
        if (null == task) {
            return Boolean.FALSE;
        }
        task.setTaskSts(TaskStsType.CANCEL.val());
        task.setUpdateTime(new Date());
        task.setUpdateBy(userId);
        if (!this.updateById(task)) {
            throw new CoolException(BaseRes.ERROR);
        }
        return Boolean.TRUE;
    }
}