Skip to content

Commit e836edf

Browse files
committed
update Notify Node record
1 parent 2ed844b commit e836edf

3 files changed

Lines changed: 36 additions & 7 deletions

File tree

flow-engine-framework/src/main/java/com/codingapi/flow/pojo/response/ProcessNode.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,13 +245,19 @@ public static class FlowOperatorBody {
245245
*/
246246
private long approveTime;
247247

248+
/**
249+
* 读取时间
250+
*/
251+
private long readTime;
252+
248253
public FlowOperatorBody(FlowRecord flowRecord, IFlowOperator flowOperator) {
249254
this.advice = flowRecord.getAdvice();
250255
this.signKey = flowRecord.getSignKey();
251256
this.approveTime = flowRecord.getUpdateTime();
252257
this.actionName = flowRecord.getActionName();
253258
this.actionType = flowRecord.getActionType();
254259
this.flowOperator = flowOperator;
260+
this.readTime = flowRecord.getReadTime();
255261
}
256262

257263
public FlowOperatorBody(IFlowOperator flowOperator) {

flow-engine-framework/src/main/java/com/codingapi/flow/record/FlowRecord.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,15 @@ public void update(FlowSession flowSession, boolean pass) {
477477
}
478478
}
479479

480+
public void clearNotify(){
481+
this.readable = false;
482+
this.readTime = 0;
483+
this.advice = null;
484+
this.signKey = null;
485+
this.notify = true;
486+
this.forwardOperatorId = 0;
487+
}
488+
480489

481490
/**
482491
* 清空已办
@@ -510,8 +519,7 @@ public void notifyRecord(FlowSession flowSession) {
510519
this.setTimeoutTime(nodeStrategyManager.getTimeoutTime());
511520
this.setMergeable(nodeStrategyManager.isEnableMergeable());
512521
this.update(flowSession, true);
513-
this.notify = true;
514-
this.forwardOperatorId = 0;
522+
this.clearNotify();
515523
}
516524

517525

flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowDetailServiceTest.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.codingapi.flow.form.permission.PermissionType;
1414
import com.codingapi.flow.node.nodes.ApprovalNode;
1515
import com.codingapi.flow.node.nodes.EndNode;
16+
import com.codingapi.flow.node.nodes.NotifyNode;
1617
import com.codingapi.flow.node.nodes.StartNode;
1718
import com.codingapi.flow.pojo.body.FlowAdviceBody;
1819
import com.codingapi.flow.pojo.request.FlowActionRequest;
@@ -210,6 +211,15 @@ void processNodes() {
210211
)
211212
.build();
212213

214+
215+
NotifyNode notifyNode = NotifyNode.builder()
216+
.name("经理审批")
217+
.strategies(NodeStrategyBuilder.builder()
218+
.addStrategy(new OperatorLoadStrategy("def run(request){return [2]}"))
219+
.build()
220+
)
221+
.build();
222+
213223
EndNode endNode = EndNode.builder().build();
214224
Workflow workflow = WorkflowBuilder.builder()
215225
.title("请假流程")
@@ -218,6 +228,7 @@ void processNodes() {
218228
.form(form)
219229
.addNode(startNode)
220230
.addNode(bossNode)
231+
.addNode(notifyNode)
221232
.addNode(endNode)
222233
.build();
223234

@@ -226,7 +237,7 @@ void processNodes() {
226237
Map<String, Object> data = Map.of("name", "lorne", "days", 1, "reason", "leave");
227238

228239
List<ProcessNode> nodeList = factory.flowService.processNodes(new FlowProcessNodeRequest(workflow.getId(), user.getUserId(),data));
229-
assertEquals(3,nodeList.size());
240+
assertEquals(4,nodeList.size());
230241
assertEquals(0,nodeList.stream().filter(ProcessNode::isHistory).toList().size());
231242

232243
List<IFlowAction> startActions = startNode.actionManager().getActions();
@@ -241,7 +252,7 @@ void processNodes() {
241252
assertEquals(1, userRecordList.size());
242253

243254
nodeList = factory.flowService.processNodes(new FlowProcessNodeRequest(userRecordList.get(0).getId(), user.getUserId(),data));
244-
assertEquals(3,nodeList.size());
255+
assertEquals(4,nodeList.size());
245256
assertEquals(0,nodeList.stream().filter(ProcessNode::isHistory).toList().size());
246257

247258

@@ -256,7 +267,7 @@ void processNodes() {
256267

257268

258269
nodeList = factory.flowService.processNodes(new FlowProcessNodeRequest(bossRecordList.get(0).getId(), boss.getUserId(),data));
259-
assertEquals(3,nodeList.size());
270+
assertEquals(4,nodeList.size());
260271
assertEquals(1,nodeList.stream().filter(ProcessNode::isHistory).toList().size());
261272

262273
List<IFlowAction> bossActions = bossNode.actionManager().getActions();
@@ -268,8 +279,12 @@ void processNodes() {
268279
factory.flowService.action(bossRequest);
269280

270281
List<FlowRecord> records = factory.flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId());
271-
assertEquals(2, records.size());
272-
assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size());
282+
assertEquals(3, records.size());
283+
assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size());
284+
285+
286+
nodeList = factory.flowService.processNodes(new FlowProcessNodeRequest(bossRecordList.get(0).getId(), boss.getUserId(),data));
287+
assertEquals(4,nodeList.size());
273288

274289
}
275290
}

0 commit comments

Comments
 (0)