diff --git a/pom.xml b/pom.xml
index a212cd153..3291d1f03 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
com.rebuild
rebuild
- 2.9.5
+ 2.9.6
rebuild
Building your business-systems freely!
diff --git a/src/main/java/com/rebuild/core/Application.java b/src/main/java/com/rebuild/core/Application.java
index ab6698403..6c2707f26 100644
--- a/src/main/java/com/rebuild/core/Application.java
+++ b/src/main/java/com/rebuild/core/Application.java
@@ -65,11 +65,11 @@ public class Application implements ApplicationListener
/**
* Rebuild Version
*/
- public static final String VER = "2.9.5";
+ public static final String VER = "2.9.6";
/**
* Rebuild Build [MAJOR]{1}[MINOR]{2}[PATCH]{2}[BUILD]{2}
*/
- public static final int BUILD = 2090515;
+ public static final int BUILD = 2090616;
static {
// Driver for DB
diff --git a/src/main/java/com/rebuild/core/service/approval/ApprovalStepService.java b/src/main/java/com/rebuild/core/service/approval/ApprovalStepService.java
index 92767399d..052f95d55 100644
--- a/src/main/java/com/rebuild/core/service/approval/ApprovalStepService.java
+++ b/src/main/java/com/rebuild/core/service/approval/ApprovalStepService.java
@@ -402,6 +402,9 @@ public class ApprovalStepService extends InternalPersistService {
if (useApprover == null) useApprover = UserService.SYSTEM_USER;
if (useApproval == null) useApproval = APPROVAL_NOID;
+ // 作废之前
+ cancelAliveSteps(recordId, null, null, null, false);
+
ID stepId = createStepIfNeed(recordId, useApproval,
FlowNode.NODE_AUTOAPPROVAL, useApprover, false, FlowNode.NODE_ROOT);
Record step = EntityHelper.forUpdate(stepId, useApprover, false);
diff --git a/src/main/java/com/rebuild/core/service/files/AttachmentAwareObserver.java b/src/main/java/com/rebuild/core/service/files/AttachmentAwareObserver.java
index 3aa314c75..cdaaf63e8 100644
--- a/src/main/java/com/rebuild/core/service/files/AttachmentAwareObserver.java
+++ b/src/main/java/com/rebuild/core/service/files/AttachmentAwareObserver.java
@@ -50,10 +50,8 @@ public class AttachmentAwareObserver extends OperatingObserver {
List creates = new ArrayList<>();
for (Field field : fileFields) {
if (record.hasValue(field.getName(), false)) {
- Object value = record.getObjectValue(field.getName());
- JSONArray filesJson = value instanceof JSON ? (JSONArray) value : parseFilesJson(value.toString());
-
- for (Object file : filesJson) {
+ JSONArray files = parseFilesJson(record.getObjectValue(field.getName()));
+ for (Object file : files) {
Record add = createAttachment(
field, context.getAfterRecord().getPrimary(), (String) file, context.getOperator());
creates.add(add);
@@ -78,8 +76,8 @@ public class AttachmentAwareObserver extends OperatingObserver {
for (Field field : fileFields) {
String fieldName = field.getName();
if (record.hasValue(fieldName)) {
- JSONArray beforeFiles = parseFilesJson(before.getString(fieldName)); // 修改前
- JSONArray afterFiles = parseFilesJson(record.getString(fieldName)); // 修改后
+ JSONArray beforeFiles = parseFilesJson(before.getObjectValue(fieldName)); // 修改前
+ JSONArray afterFiles = parseFilesJson(record.getObjectValue(fieldName)); // 修改后
for (Iterator