From d6e48b72f0b7afd70205d6e88b3f336264891cc3 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期二, 24 九月 2024 14:11:53 +0800 Subject: [PATCH] # --- zy-acs-flow/src/page/bus/BusList.jsx | 26 ++---- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java | 4 + zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java | 15 +++ zy-acs-flow/src/i18n/core/chineseMessages.js | 2 zy-acs-framework/src/main/resources/templates/react-admin/ReactList.txt | 1 zy-acs-flow/src/i18n/en.js | 1 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java | 32 ++++++++ zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java | 34 ++++++++ zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Bus.java | 18 +-- zy-acs-flow/src/i18n/zh.js | 1 zy-acs-flow/src/page/task/TaskList.jsx | 71 ++++++++++++++++- 11 files changed, 173 insertions(+), 32 deletions(-) diff --git a/zy-acs-flow/src/i18n/core/chineseMessages.js b/zy-acs-flow/src/i18n/core/chineseMessages.js index 44e656d..81ed6f7 100644 --- a/zy-acs-flow/src/i18n/core/chineseMessages.js +++ b/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: '鍏ㄩ儴閫変腑', diff --git a/zy-acs-flow/src/i18n/en.js b/zy-acs-flow/src/i18n/en.js index afa0a4d..052b4cf 100644 --- a/zy-acs-flow/src/i18n/en.js +++ b/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: { diff --git a/zy-acs-flow/src/i18n/zh.js b/zy-acs-flow/src/i18n/zh.js index cc73255..0fcc138 100644 --- a/zy-acs-flow/src/i18n/zh.js +++ b/zy-acs-flow/src/i18n/zh.js @@ -63,6 +63,7 @@ result: '瀵煎叆瀹屾垚銆傚凡瀵煎叆 %{success} 鎴愬姛, 鍜� %{error} 澶辫触', }, loadMore: '鍔犺浇鏇村', + complete: '瀹屾垚', }, msg: { confirm: { diff --git a/zy-acs-flow/src/page/bus/BusList.jsx b/zy-acs-flow/src/page/bus/BusList.jsx index ab39add..da2a17a 100644 --- a/zy-acs-flow/src/page/bus/BusList.jsx +++ b/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" diff --git a/zy-acs-flow/src/page/task/TaskList.jsx b/zy-acs-flow/src/page/task/TaskList.jsx index b140bbd..870234b 100644 --- a/zy-acs-flow/src/page/task/TaskList.jsx +++ b/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 diff --git a/zy-acs-framework/src/main/resources/templates/react-admin/ReactList.txt b/zy-acs-framework/src/main/resources/templates/react-admin/ReactList.txt index b827577..5abfdc6 100644 --- a/zy-acs-framework/src/main/resources/templates/react-admin/ReactList.txt +++ b/zy-acs-framework/src/main/resources/templates/react-admin/ReactList.txt @@ -14,6 +14,7 @@ WrapperField, useRecordContext, useTranslate, + useNotify, useListContext, FunctionField, TextField, diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java index 579bd5d..b1dbd0d 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java +++ b/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"); + } + } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java index d186ab1..84a8161 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/TaskController.java +++ b/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"); + } + + } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Bus.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Bus.java index cee3d75..9e7f4cc 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Bus.java +++ b/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 "姝e父"; - 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; } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java index dc8b6df..4e2ad49 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java +++ b/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); + } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java index dceb718..2e9a36d 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java +++ b/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; + } + } -- Gitblit v1.9.1