diff --git a/@rbv b/@rbv index 5cd4303fe..75847403d 160000 --- a/@rbv +++ b/@rbv @@ -1 +1 @@ -Subproject commit 5cd4303fe6581ae6867546e527154c8053fc96a7 +Subproject commit 75847403de7aa7d2e4222d6ff4c8bd8803493715 diff --git a/pom.xml b/pom.xml index 56f9ca7e4..4dc50d5e2 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.rebuild rebuild - 3.5.5 + 3.5.6 rebuild Building your business-systems freely! https://getrebuild.com/ diff --git a/src/main/java/com/rebuild/core/Application.java b/src/main/java/com/rebuild/core/Application.java index 0b203ea6a..d182a8220 100644 --- a/src/main/java/com/rebuild/core/Application.java +++ b/src/main/java/com/rebuild/core/Application.java @@ -74,11 +74,11 @@ public class Application implements ApplicationListener /** * Rebuild Version */ - public static final String VER = "3.5.5"; + public static final String VER = "3.5.6"; /** * Rebuild Build [MAJOR]{1}[MINOR]{2}[PATCH]{2}[BUILD]{2} */ - public static final int BUILD = 3050510; + public static final int BUILD = 3050611; static { // Driver for DB diff --git a/src/main/java/com/rebuild/core/metadata/MetadataHelper.java b/src/main/java/com/rebuild/core/metadata/MetadataHelper.java index 0ca10bbea..2e144ec14 100644 --- a/src/main/java/com/rebuild/core/metadata/MetadataHelper.java +++ b/src/main/java/com/rebuild/core/metadata/MetadataHelper.java @@ -111,7 +111,7 @@ public static Entity getEntity(String entityName) throws MissingMetaExcetion { try { return getMetadataFactory().getEntity(entityName); } catch (MissingMetaExcetion ex) { - throw new MissingMetaExcetion(Language.L("实体 [%s] 已经不存在,请检查配置", entityName.toUpperCase())); + throw new MissingMetaExcetion(Language.L("实体 [%s] 已经不存在,请检查配置", StringUtils.upperCase(entityName))); } } diff --git a/src/main/java/com/rebuild/core/service/approval/RobotApprovalManager.java b/src/main/java/com/rebuild/core/service/approval/RobotApprovalManager.java index 1cd4ecb0b..0acb57e74 100644 --- a/src/main/java/com/rebuild/core/service/approval/RobotApprovalManager.java +++ b/src/main/java/com/rebuild/core/service/approval/RobotApprovalManager.java @@ -134,11 +134,13 @@ public FlowDefinition[] getFlowDefinitions(ID recordId, ID user) { // 发起人匹配 JSONArray users = root.getDataMap().getJSONArray("users"); if (users == null || users.isEmpty()) { - users = JSON.parseArray("['OWNS']"); + // v3.5.5/3.5.6 默认所有人可发起 + users = JSON.parseArray("['ALL']"); } - if (FlowNode.USER_ALL.equals(users.getString(0)) - || (FlowNode.USER_OWNS.equals(users.getString(0)) && owning.equals(user)) + final String rootUser = users.getString(0); + if (FlowNode.USER_ALL.equals(rootUser) + || (FlowNode.USER_OWNS.equals(rootUser) && owning.equals(user)) || UserHelper.parseUsers(users, recordId).contains(user)) { // 过滤条件 diff --git a/src/main/java/com/rebuild/core/service/general/GeneralEntityService.java b/src/main/java/com/rebuild/core/service/general/GeneralEntityService.java index 0d9d6c302..7ee85a1a7 100644 --- a/src/main/java/com/rebuild/core/service/general/GeneralEntityService.java +++ b/src/main/java/com/rebuild/core/service/general/GeneralEntityService.java @@ -215,7 +215,12 @@ record = record.getPrimary() == null ? create(record) : update(record); } /** - * 优先使用 `#createOrUpdate(Record) ` + * 优先使用 `#createOrUpdate`。直接使用此方法请注意调用重复检查 `#getAndCheckRepeated` + * + * @param record + * @return + * @see #createOrUpdate(Record) + * @see #getAndCheckRepeated(Record, int) */ @Override public Record create(Record record) { @@ -226,7 +231,12 @@ public Record create(Record record) { } /** - * 优先使用 `#createOrUpdate(Record) ` + * 优先使用 `#createOrUpdate`。直接使用此方法请注意调用重复检查 `#getAndCheckRepeated` + * + * @param record + * @return + * @see #createOrUpdate(Record) + * @see #getAndCheckRepeated(Record, int) */ @Override public Record update(Record record) { diff --git a/src/main/java/com/rebuild/core/service/general/recyclebin/RecycleBinCleanerJob.java b/src/main/java/com/rebuild/core/service/general/recyclebin/RecycleBinCleanerJob.java index ff1ce38d2..17d780c0e 100644 --- a/src/main/java/com/rebuild/core/service/general/recyclebin/RecycleBinCleanerJob.java +++ b/src/main/java/com/rebuild/core/service/general/recyclebin/RecycleBinCleanerJob.java @@ -59,7 +59,7 @@ protected void executeJob() { // 相关引用也在此时一并删除,因为记录已经彻底删除 // Field: recordId String[] refs = new String[] { - "Attachment", "ShareAccess", "RobotApprovalStep", "NreferenceItem" + "Attachment", "ShareAccess", "RobotApprovalStep", "NreferenceItem", "TagItem" }; for (String refName : refs) { Entity refEntity = MetadataHelper.getEntity(refName); diff --git a/src/main/java/com/rebuild/core/service/general/recyclebin/RestoreRecordCreator.java b/src/main/java/com/rebuild/core/service/general/recyclebin/RestoreRecordCreator.java index b42a0427c..bf989e279 100644 --- a/src/main/java/com/rebuild/core/service/general/recyclebin/RestoreRecordCreator.java +++ b/src/main/java/com/rebuild/core/service/general/recyclebin/RestoreRecordCreator.java @@ -12,7 +12,10 @@ import cn.devezhao.persist4j.Record; import cn.devezhao.persist4j.engine.StandardRecord; import cn.devezhao.persist4j.record.JsonRecordCreator; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.rebuild.core.metadata.easymeta.DisplayType; +import com.rebuild.core.metadata.easymeta.EasyMetaFactory; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -46,6 +49,18 @@ public Record create(boolean ignoreNullValueWhenNew) { continue; } + // fix: v3.5.6/v3.6 + DisplayType dt = EasyMetaFactory.getDisplayType(entity.getField(fileName)); + if (dt == DisplayType.N2NREFERENCE || dt == DisplayType.TAG) { + // 只需保留一个作为标志,因为 NreferenceItem/TagItem 中并未删除 + try { + JSONArray valueArray = (JSONArray) value; + value = valueArray.get(0); + } catch (Exception ignored) { + continue; + } + } + setFieldValue(entity.getField(fileName), value.toString(), record); } return record; diff --git a/src/main/resources/web/assets/js/metadata/field-edit.js b/src/main/resources/web/assets/js/metadata/field-edit.js index 40d4d9fc4..55508791f 100644 --- a/src/main/resources/web/assets/js/metadata/field-edit.js +++ b/src/main/resources/web/assets/js/metadata/field-edit.js @@ -561,7 +561,7 @@ const _loadRefsLabel = function ($dv, $dvClear) { $dv.attr('data-value-id', CURRENT_BIZZ) $dvClear && $dvClear.removeClass('hide') } else if (dvid) { - $.get(`/commons/search/read-labels?ids=${encodeURIComponent(dvid)}&ignoreMiss=true`, (res) => { + $.get(`/commons/search/read-labels?ids=${encodeURIComponent(dvid)}&ignoreMiss=false`, (res) => { if (res.data) { const ids = [] const labels = []