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