@@ -32,8 +32,9 @@ public class FlowRecallService {
3232 *
3333 * @param recordId 流程记录id
3434 * @param currentOperator 当前操作者
35+ * @param backStartNode 是否退回到发起节点(仅限于流程创建者有效)
3536 */
36- public void recall (long recordId , IFlowOperator currentOperator ) {
37+ public void recall (long recordId , IFlowOperator currentOperator , boolean backStartNode ) {
3738 FlowRecordVerifyService flowRecordVerifyService = new FlowRecordVerifyService (
3839 flowWorkRepository ,
3940 flowRecordRepository ,
@@ -51,7 +52,7 @@ public void recall(long recordId, IFlowOperator currentOperator) {
5152 FlowWork flowWork = flowRecordVerifyService .getFlowWork ();
5253 BindDataSnapshot bindDataSnapshot = flowBindDataRepository .getBindDataSnapshotById (flowRecord .getSnapshotId ());
5354
54- if (flowRecordVerifyService .isCreateOperator ()){
55+ if (backStartNode && flowRecordVerifyService .isCreateOperator ()){
5556 List <FlowRecord > records = flowRecordRepository .findFlowRecordByProcessId (flowRecord .getProcessId ());
5657 for (FlowRecord record :records ){
5758 if (!record .isStartRecord ()) {
@@ -88,4 +89,15 @@ public void recall(long recordId, IFlowOperator currentOperator) {
8889 IBindData bindData = bindDataSnapshot .toBindData ();
8990 EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_RECALL , flowRecord , currentOperator , flowWork , bindData ), true );
9091 }
92+
93+
94+ /**
95+ * 撤回流程
96+ *
97+ * @param recordId 流程记录id
98+ * @param currentOperator 当前操作者
99+ */
100+ public void recall (long recordId , IFlowOperator currentOperator ) {
101+ this .recall (recordId , currentOperator , true );
102+ }
91103}
0 commit comments