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 class RobotApprovalManager implements ConfigManager { // 发起人匹配 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 @@ public class GeneralEntityService extends ObservableService implements EntitySer } /** - * 优先使用 `#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 class GeneralEntityService extends ObservableService implements EntitySer } /** - * 优先使用 `#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/RestoreRecordCreator.java b/src/main/java/com/rebuild/core/service/general/recyclebin/RestoreRecordCreator.java index 3a5ab85e2..697d76439 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 @@ -59,6 +59,18 @@ public class RestoreRecordCreator extends JsonRecordCreator { } } + // 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 013abb921..fca6b626f 100644 --- a/src/main/resources/web/assets/js/metadata/field-edit.js +++ b/src/main/resources/web/assets/js/metadata/field-edit.js @@ -574,7 +574,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 = []