From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsService/support/DmsWenjianBianhaoFlowStateResolver.java |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsService/support/DmsWenjianBianhaoFlowStateResolver.java b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsService/support/DmsWenjianBianhaoFlowStateResolver.java
new file mode 100644
index 0000000..b92e7c9
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsService/support/DmsWenjianBianhaoFlowStateResolver.java
@@ -0,0 +1,64 @@
+package jnpf.dmsService.support;
+
+import java.util.Optional;
+
+/**
+ * Converts the persisted JNPF flow state into an idempotent number action.
+ */
+public final class DmsWenjianBianhaoFlowStateResolver {
+
+    public static final int TO_BE_SUBMIT = 0;
+    public static final int RUNNING = 1;
+    public static final int PASSED = 2;
+    public static final int REJECTED = 3;
+    public static final int CANCELLED = 4;
+    public static final int PAUSED = 5;
+    public static final int REVOKING = 6;
+    public static final int REVOKED = 7;
+    public static final int BACKED = 8;
+    public static final int RECALLED = 9;
+    public static final int EXCEPTION = 10;
+
+    private DmsWenjianBianhaoFlowStateResolver() {
+    }
+
+    public static Optional<Action> resolve(Integer flowState) {
+        if (flowState == null) {
+            return Optional.empty();
+        }
+        switch (flowState) {
+            case TO_BE_SUBMIT:
+            case RECALLED:
+                return Optional.of(Action.RESTORE_DRAFT);
+            case RUNNING:
+                return Optional.of(Action.FREEZE_SNAPSHOT);
+            case PASSED:
+                return Optional.of(Action.ISSUE_NUMBER);
+            case REJECTED:
+                return Optional.of(Action.REJECT);
+            case CANCELLED:
+                return Optional.of(Action.CANCEL);
+            case PAUSED:
+            case REVOKING:
+            case BACKED:
+                return Optional.of(Action.HOLD);
+            case REVOKED:
+                return Optional.of(Action.REVOKE);
+            case EXCEPTION:
+                return Optional.of(Action.ERROR);
+            default:
+                return Optional.empty();
+        }
+    }
+
+    public enum Action {
+        RESTORE_DRAFT,
+        FREEZE_SNAPSHOT,
+        ISSUE_NUMBER,
+        REJECT,
+        CANCEL,
+        HOLD,
+        REVOKE,
+        ERROR
+    }
+}

--
Gitblit v1.8.0