From 6331e9aa3f0ced66084bb41de3245162ff8ae806 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期二, 10 三月 2026 15:12:15 +0800
Subject: [PATCH] #跳转到当前
---
rsf-server/src/main/java/com/vincent/rsf/server/system/service/FlowStepInstanceService.java | 2 +
rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/FlowStepInstanceServiceImpl.java | 23 +++++++++++
rsf-admin/src/page/task/FlowStepInstanceModal.jsx | 27 ++++++++++++-
rsf-admin/src/i18n/zh.js | 1
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FlowStepInstanceController.java | 10 +++++
rsf-admin/src/i18n/en.js | 1
6 files changed, 61 insertions(+), 3 deletions(-)
diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index f4a1014..112b3ba 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -1529,6 +1529,7 @@
modiftySite: 'Modify SiteNo',
selectWave: 'Select Wave Rule',
flowStep: "Flow Step",
+ jumpCurrent: "Jump To Current",
},
placeholder: {
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 3fe12dd..44a501b 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -1597,6 +1597,7 @@
selectWave: '娉㈡瑙勫垯',
transformation: "杞崲",
flowStep: "娴佺▼姝ラ",
+ jumpCurrent: "璺宠浆鍒板綋鍓�",
},
placeholder: {
warehouseAreasCode: "鐢ㄤ簬搴撲綅缂栫爜鍓嶇紑鍗犱綅绗�",
diff --git a/rsf-admin/src/page/task/FlowStepInstanceModal.jsx b/rsf-admin/src/page/task/FlowStepInstanceModal.jsx
index fa71460..85793cd 100644
--- a/rsf-admin/src/page/task/FlowStepInstanceModal.jsx
+++ b/rsf-admin/src/page/task/FlowStepInstanceModal.jsx
@@ -25,6 +25,7 @@
import AddIcon from '@mui/icons-material/Add';
import DeleteIcon from '@mui/icons-material/Delete';
import EditIcon from '@mui/icons-material/Edit';
+import MyLocationIcon from '@mui/icons-material/MyLocation';
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -34,7 +35,7 @@
cursor: 'auto'
},
'& .opt': {
- width: 150
+ width: 220
},
}));
@@ -109,6 +110,20 @@
}
};
+ const handleJumpCurrent = async (item) => {
+ try {
+ const res = await request.post(`/flowStepInstance/jumpCurrent/${item.id}`);
+ if (res.data.code === 200) {
+ notify(res.data.msg || translate('common.response.success'), { type: 'success' });
+ fetchData();
+ } else {
+ notify(res.data.msg, { type: 'error' });
+ }
+ } catch (error) {
+ notify('Jump current failed', { type: 'error' });
+ }
+ };
+
const handleFormClose = () => {
setFormOpen(false);
setFormData({});
@@ -177,7 +192,7 @@
<TextField source="taskNo" label={translate("table.field.flowStepInstance.taskNo")} />
<DateField source="createTime" label={translate("table.field.flowStepInstance.createTime")} showTime />
<WrapperField cellClassName="opt" label="common.field.opt" onClick={(e) => e.stopPropagation()} >
- <RowActions onEdit={handleEdit} onDelete={handleDelete} />
+ <RowActions onEdit={handleEdit} onDelete={handleDelete} onJumpCurrent={handleJumpCurrent} />
</WrapperField>
</StyledDatagrid>
</DialogContent>
@@ -215,8 +230,9 @@
);
};
-const RowActions = ({ onEdit, onDelete }) => {
+const RowActions = ({ onEdit, onDelete, onJumpCurrent }) => {
const record = useRecordContext();
+ const translate = useTranslate();
return (
<Box display="flex">
<Tooltip title="Edit">
@@ -224,6 +240,11 @@
<EditIcon fontSize="small" />
</IconButton>
</Tooltip>
+ <Tooltip title={translate("toolbar.jumpCurrent")}>
+ <IconButton onClick={() => onJumpCurrent(record)} size="small" color="secondary">
+ <MyLocationIcon fontSize="small" />
+ </IconButton>
+ </Tooltip>
{/* If there's an issue with event propagation you might need to handle it in onClick */}
<Tooltip title="Delete">
<IconButton onClick={() => onDelete(record)} size="small" color="error">
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FlowStepInstanceController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FlowStepInstanceController.java
index a40bb8d..88a921c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FlowStepInstanceController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FlowStepInstanceController.java
@@ -74,6 +74,16 @@
return R.ok("Update Success").add(flowStepInstance);
}
+ @PreAuthorize("hasAuthority('manager:task:update')")
+ @OperationLog("Jump Current 瀛愭祦绋嬫楠ゅ疄渚�")
+ @PostMapping("/flowStepInstance/jumpCurrent/{id}")
+ public R jumpCurrent(@PathVariable("id") Long id) {
+ if (!flowStepInstanceService.jumpCurrent(id)) {
+ return R.error("璺宠浆寮傚父");
+ }
+ return R.ok("璺宠浆鎴愬姛").add(id);
+ }
+
@PreAuthorize("hasAuthority('manager:task:remove')")
@OperationLog("Delete 瀛愭祦绋嬫楠ゅ疄渚�")
@PostMapping("/flowStepInstance/remove/{ids}")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/FlowStepInstanceService.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/FlowStepInstanceService.java
index ac336ea..75794c3 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/FlowStepInstanceService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/FlowStepInstanceService.java
@@ -5,4 +5,6 @@
public interface FlowStepInstanceService extends IService<FlowStepInstance> {
+ boolean jumpCurrent(Long id);
+
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/FlowStepInstanceServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/FlowStepInstanceServiceImpl.java
index 6472db6..e8c182e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/FlowStepInstanceServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/FlowStepInstanceServiceImpl.java
@@ -1,12 +1,35 @@
package com.vincent.rsf.server.system.service.impl;
+import com.vincent.rsf.server.system.entity.FlowInstance;
import com.vincent.rsf.server.system.mapper.FlowStepInstanceMapper;
import com.vincent.rsf.server.system.entity.FlowStepInstance;
+import com.vincent.rsf.server.system.service.FlowInstanceService;
import com.vincent.rsf.server.system.service.FlowStepInstanceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
@Service("flowStepInstanceService")
public class FlowStepInstanceServiceImpl extends ServiceImpl<FlowStepInstanceMapper, FlowStepInstance> implements FlowStepInstanceService {
+ @Autowired
+ private FlowInstanceService flowInstanceService;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean jumpCurrent(Long id) {
+ FlowStepInstance flowStepInstance = getById(id);
+ if (flowStepInstance == null || flowStepInstance.getFlowInstanceId() == null) {
+ return false;
+ }
+
+ FlowInstance flowInstance = new FlowInstance();
+ flowInstance.setId(flowStepInstance.getFlowInstanceId());
+ flowInstance.setCurrentStepCode(flowStepInstance.getStepCode());
+ flowInstance.setCurrentStepOrder(flowStepInstance.getStepOrder());
+ flowInstance.setUpdateTime(new java.util.Date());
+ return flowInstanceService.updateById(flowInstance);
+ }
+
}
--
Gitblit v1.9.1