Browse Source

流程撤回、回退

lamphua 1 year ago
parent
commit
ad87ffae09

+ 25
- 12
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowTaskServiceImpl.java View File

@@ -305,18 +305,18 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
305 305
             runtimeService.createChangeActivityStateBuilder()
306 306
                     .processInstanceId(task.getProcessInstanceId())
307 307
                     .moveActivityIdsToSingleActivityId(currentIds, flowTaskVo.getTargetKey()).changeState();
308
-//            String currentTaskId = taskService.createTaskQuery().singleResult().getId();
309
-//            List<HistoricTaskInstance> htiList = historyService.createHistoricTaskInstanceQuery()
310
-//                    .processInstanceId(task.getProcessInstanceId()).taskDefinitionKey(flowTaskVo.getTargetKey())
311
-//                    .list();
312
-//            String taskAssignee = "";
313
-//            for (HistoricTaskInstance hti: htiList) {
314
-//                if (!hti.getId().equals(currentTaskId)) {
315
-//                    taskAssignee = hti.getAssignee();
316
-//                    break;
317
-//                }
318
-//            }
319
-//            taskService.setAssignee(currentTaskId, taskAssignee);
308
+            String currentTaskId = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).singleResult().getId();
309
+            List<HistoricTaskInstance> htiList = historyService.createHistoricTaskInstanceQuery()
310
+                    .processInstanceId(task.getProcessInstanceId()).taskDefinitionKey(flowTaskVo.getTargetKey())
311
+                    .list();
312
+            String taskAssignee = "";
313
+            for (HistoricTaskInstance hti: htiList) {
314
+                if (!hti.getId().equals(currentTaskId)) {
315
+                    taskAssignee = hti.getAssignee();
316
+                    break;
317
+                }
318
+            }
319
+            taskService.setAssignee(currentTaskId, taskAssignee);
320 320
         } catch (FlowableObjectNotFoundException e) {
321 321
             throw new CustomException("未找到流程实例,流程可能已发生变化");
322 322
         } catch (FlowableException e) {
@@ -716,6 +716,19 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
716 716
             runtimeService.createChangeActivityStateBuilder()
717 717
                     .processInstanceId(task.getProcessInstanceId())
718 718
                     .moveActivityIdsToSingleActivityId(currentIds, lastHistoricTaskDefinitionKey).changeState();
719
+            String currentTaskId = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).singleResult().getId();
720
+            List<HistoricTaskInstance> htiTargetList = historyService.createHistoricTaskInstanceQuery()
721
+                    .processInstanceId(task.getProcessInstanceId())
722
+                    .taskDefinitionKey(flowTaskVo.getTargetKey())
723
+                    .list();
724
+            String taskAssignee = "";
725
+            for (HistoricTaskInstance hti: htiTargetList) {
726
+                if (!hti.getId().equals(currentTaskId)) {
727
+                    taskAssignee = hti.getAssignee();
728
+                    break;
729
+                }
730
+            }
731
+            taskService.setAssignee(currentTaskId, taskAssignee);
719 732
         } catch (FlowableObjectNotFoundException e) {
720 733
             throw new CustomException("未找到流程实例,流程可能已发生变化");
721 734
         } catch (FlowableException e) {

+ 3
- 3
oa-ui/src/views/oa/device/index.vue View File

@@ -1,14 +1,14 @@
1 1
 <template>
2 2
   <div class="app-container">
3 3
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
-      <el-form-item label="出厂编号" prop="code">
5
-        <el-input v-model="queryParams.code" placeholder="请输入出厂编号" clearable @keyup.enter.native="handleQuery" />
6
-      </el-form-item>
7 4
 
8 5
       <el-form-item label="设备名称" prop="name">
9 6
         <el-input v-model="queryParams.name" placeholder="请输入设备名称" clearable @keyup.enter.native="handleQuery" />
10 7
       </el-form-item>
11 8
       <el-form-item>
9
+      <el-form-item label="规格型号" prop="series">
10
+        <el-input v-model="queryParams.series" placeholder="请输入规格型号" clearable @keyup.enter.native="handleQuery" />
11
+      </el-form-item>
12 12
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
13 13
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
14 14
       </el-form-item>

+ 42
- 4
oa-ui/src/views/oa/supply/index.vue View File

@@ -1,13 +1,18 @@
1 1
 <template>
2 2
   <div class="app-container">
3 3
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
-      <el-form-item label="出厂编号" prop="code">
5
-        <el-input v-model="queryParams.code" placeholder="请输入出厂编号" clearable @keyup.enter.native="handleQuery" />
4
+      <el-form-item label="设备状态" prop="name">
5
+        <el-input v-model="queryParams.name" placeholder="请输入设备名称" clearable @keyup.enter.native="handleQuery" />
6 6
       </el-form-item>
7
-
8 7
       <el-form-item label="设备名称" prop="name">
9 8
         <el-input v-model="queryParams.name" placeholder="请输入设备名称" clearable @keyup.enter.native="handleQuery" />
10 9
       </el-form-item>
10
+      <el-form-item label="设备品牌" prop="brand">
11
+        <el-input v-model="queryParams.brand" placeholder="请输入设备品牌" clearable @keyup.enter.native="handleQuery" />
12
+      </el-form-item>
13
+      <el-form-item label="规格型号" prop="series">
14
+        <el-input v-model="queryParams.series" placeholder="请输入规格型号" clearable @keyup.enter.native="handleQuery" />
15
+      </el-form-item>
11 16
       <el-form-item>
12 17
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
13 18
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -37,9 +42,15 @@
37 42
     <el-table v-loading="loading" :data="deviceList" @selection-change="handleSelectionChange">
38 43
       <el-table-column type="selection" width="55" align="center" />
39 44
       <!-- <el-table-column label="设备id" align="center" prop="deviceId" /> -->
45
+      <el-table-column label="设备状态" align="center" prop="status">
46
+        <template slot-scope="scope">
47
+          <el-tag :type="statusTypeStyle(scope.row.status)">{{ statusTypeText(scope.row.status) }}</el-tag>
48
+        </template>
49
+      </el-table-column>
40 50
       <el-table-column label="出厂编号" align="center" prop="code" />
41 51
       <el-table-column label="设备名称" align="center" prop="name" />
42 52
       <el-table-column label="设备类别" align="center" prop="type" />
53
+      <el-table-column label="设备品牌" align="center" prop="brand" />
43 54
       <el-table-column label="规格型号" align="center" prop="series" />
44 55
       <el-table-column label="购置时间" align="center" prop="acquisitionTime" width="180">
45 56
         <template slot-scope="scope">
@@ -48,7 +59,6 @@
48 59
       </el-table-column>
49 60
       <el-table-column label="购买价格(元)" align="center" prop="cost" />
50 61
       <el-table-column label="预计使用年限" align="center" prop="expectLife" />
51
-      <el-table-column label="设备品牌" align="center" prop="brand" />
52 62
       <el-table-column label="单日成本(元)" align="center" prop="dayCost" />
53 63
       <el-table-column label="存放地点" align="center" prop="place" />
54 64
       <el-table-column label="管理部门" align="center" prop="dept.deptName" />
@@ -308,6 +318,34 @@ export default {
308 318
       this.download('oa/device/export', {
309 319
         ...this.queryParams
310 320
       }, `device_${new Date().getTime()}.xlsx`)
321
+    },
322
+    statusTypeText(row) {
323
+      if (row == '0') {
324
+        return '被领用'
325
+      }
326
+      if (row == '1') {
327
+        return '可领用'
328
+      }
329
+      if (row == '2') {
330
+        return '维修中'
331
+      }
332
+      if (row == '3') {
333
+        return '已停用'
334
+      }
335
+    },
336
+    statusTypeStyle(row) {
337
+      if (row == '0') {
338
+        return 'warning'
339
+      }
340
+      if (row == '1') {
341
+        return 'success'
342
+      }
343
+      if (row == '2') {
344
+        return 'danger'
345
+      }
346
+      if (row == '3') {
347
+        return 'info'
348
+      }
311 349
     }
312 350
   }
313 351
 };

Loading…
Cancel
Save