From 9b287028c0e9d30323d3a2931e7207291e37fd08 Mon Sep 17 00:00:00 2001 From: FangfangZhao Date: Tue, 25 Dec 2018 02:24:47 +0800 Subject: [PATCH] isdeleted --- .../server/helper/manager/FormManager.java | 2 +- .../rebuild/server/metadata/EntityHelper.java | 6 ++-- .../server/metadata/ExtRecordCreator.java | 4 +-- .../server/metadata/MetadataHelper.java | 19 +++++++++++ .../server/metadata/MetadataSorter.java | 3 +- .../server/metadata/entityhub/EasyMeta.java | 8 ++--- .../metadata/entityhub/Entity2Schema.java | 4 ++- .../metadata/entityhub/Field2Schema.java | 4 ++- .../service/base/GeneralEntityService.java | 32 ++++++++++--------- 9 files changed, 53 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/rebuild/server/helper/manager/FormManager.java b/src/main/java/com/rebuild/server/helper/manager/FormManager.java index de01c3c9b..ac3e4dd50 100644 --- a/src/main/java/com/rebuild/server/helper/manager/FormManager.java +++ b/src/main/java/com/rebuild/server/helper/manager/FormManager.java @@ -256,7 +256,7 @@ public class FormManager extends LayoutManager { } } else if (dt == DisplayType.SERIES) { - el.put("value", "自动生成"); + el.put("value", "自动值 (保存后显示)"); } // TODO 字段的默认值 diff --git a/src/main/java/com/rebuild/server/metadata/EntityHelper.java b/src/main/java/com/rebuild/server/metadata/EntityHelper.java index 42f2703de..e1a099d97 100644 --- a/src/main/java/com/rebuild/server/metadata/EntityHelper.java +++ b/src/main/java/com/rebuild/server/metadata/EntityHelper.java @@ -117,8 +117,6 @@ public class EntityHelper { // 公共字段 - public static final String AutoId = "autoId"; - public static final String QuickCode = "quickCode"; public static final String CreatedOn = "createdOn"; public static final String CreatedBy = "createdBy"; public static final String ModifiedOn = "modifiedOn"; @@ -126,6 +124,10 @@ public class EntityHelper { public static final String OwningUser = "owningUser"; public static final String OwningDept = "owningDept"; + public static final String AutoId = "autoId"; + public static final String QuickCode = "quickCode"; + public static final String IsDeleted = "isDeleted"; + // 系统实体 public static final int User = 1; diff --git a/src/main/java/com/rebuild/server/metadata/ExtRecordCreator.java b/src/main/java/com/rebuild/server/metadata/ExtRecordCreator.java index 027156833..0f463f7ef 100644 --- a/src/main/java/com/rebuild/server/metadata/ExtRecordCreator.java +++ b/src/main/java/com/rebuild/server/metadata/ExtRecordCreator.java @@ -35,7 +35,6 @@ import cn.devezhao.commons.CalendarUtils; import cn.devezhao.persist4j.Entity; import cn.devezhao.persist4j.Field; import cn.devezhao.persist4j.Record; -import cn.devezhao.persist4j.dialect.FieldType; import cn.devezhao.persist4j.engine.ID; import cn.devezhao.persist4j.record.JsonRecordCreator; @@ -102,8 +101,7 @@ public class ExtRecordCreator extends JsonRecordCreator { List notNulls = new ArrayList(); for (Field field : entity.getFields()) { - String fieldName = field.getName(); - if (FieldType.PRIMARY.equals(field.getType()) || field.isAutoValue() || fieldName.equalsIgnoreCase(EntityHelper.QuickCode)) { + if (MetadataHelper.isSystemField(field)) { continue; } EasyMeta easy = EasyMeta.valueOf(field); diff --git a/src/main/java/com/rebuild/server/metadata/MetadataHelper.java b/src/main/java/com/rebuild/server/metadata/MetadataHelper.java index 1d06e6742..27290382c 100644 --- a/src/main/java/com/rebuild/server/metadata/MetadataHelper.java +++ b/src/main/java/com/rebuild/server/metadata/MetadataHelper.java @@ -189,6 +189,25 @@ public class MetadataHelper { return false; } + /** + * 仅供系统使用的字段 + * + * @param field + * @return + */ + public static boolean isSystemField(Field field) { + String fieldName = field.getName(); + if (EntityHelper.AutoId.equalsIgnoreCase(fieldName) + || EntityHelper.QuickCode.equalsIgnoreCase(fieldName) + || EntityHelper.IsDeleted.equalsIgnoreCase(fieldName)) { + return true; + } + if (field.getType() == FieldType.PRIMARY) { + return true; + } + return false; + } + /** * 是否 Bizz 实体 * diff --git a/src/main/java/com/rebuild/server/metadata/MetadataSorter.java b/src/main/java/com/rebuild/server/metadata/MetadataSorter.java index 4f0c243a8..b98608768 100644 --- a/src/main/java/com/rebuild/server/metadata/MetadataSorter.java +++ b/src/main/java/com/rebuild/server/metadata/MetadataSorter.java @@ -35,7 +35,6 @@ import com.rebuild.server.metadata.entityhub.EasyMeta; import cn.devezhao.persist4j.Entity; import cn.devezhao.persist4j.Field; -import cn.devezhao.persist4j.dialect.FieldType; import cn.devezhao.persist4j.engine.ID; import cn.devezhao.persist4j.metadata.BaseMeta; @@ -138,7 +137,7 @@ public class MetadataSorter { if (dtAllowed == null || dtAllowed.length == 0) { List list = new ArrayList<>(); for (Field field : fields) { - if (!(field.getType() == FieldType.PRIMARY || field.isAutoValue() || EntityHelper.QuickCode.equalsIgnoreCase(field.getName()))) { + if (!MetadataHelper.isSystemField(field)) { list.add(field); } } diff --git a/src/main/java/com/rebuild/server/metadata/entityhub/EasyMeta.java b/src/main/java/com/rebuild/server/metadata/entityhub/EasyMeta.java index 141ffb1f6..acfe41ba9 100644 --- a/src/main/java/com/rebuild/server/metadata/entityhub/EasyMeta.java +++ b/src/main/java/com/rebuild/server/metadata/entityhub/EasyMeta.java @@ -52,6 +52,7 @@ public class EasyMeta implements BaseMeta { static { BUILTIN_FIELD.add(EntityHelper.AutoId); BUILTIN_FIELD.add(EntityHelper.QuickCode); + BUILTIN_FIELD.add(EntityHelper.IsDeleted); BUILTIN_FIELD.add(EntityHelper.CreatedOn); BUILTIN_FIELD.add(EntityHelper.CreatedBy); BUILTIN_FIELD.add(EntityHelper.ModifiedOn); @@ -138,7 +139,7 @@ public class EasyMeta implements BaseMeta { } /** - * 系统内建字段,一般系统用 + * 系统内建字段 * * @return */ @@ -148,11 +149,10 @@ public class EasyMeta implements BaseMeta { } if (isField()) { - DisplayType dt = getDisplayType(); Field field = (Field) this.baseMeta; - if (dt == DisplayType.ID || BUILTIN_FIELD.contains(getName())) { + if (MetadataHelper.isSystemField(field) || BUILTIN_FIELD.contains(getName())) { return true; - } else if (dt == DisplayType.REFERENCE) { + } else if (getDisplayType() == DisplayType.REFERENCE) { // 明细-引用主记录的字段也是内建 Entity hasMaster = field.getOwnEntity().getMasterEntity(); if (hasMaster != null && hasMaster.equals(field.getReferenceEntity()) && !field.isCreatable()) { diff --git a/src/main/java/com/rebuild/server/metadata/entityhub/Entity2Schema.java b/src/main/java/com/rebuild/server/metadata/entityhub/Entity2Schema.java index 145ffc898..487b26eac 100644 --- a/src/main/java/com/rebuild/server/metadata/entityhub/Entity2Schema.java +++ b/src/main/java/com/rebuild/server/metadata/entityhub/Entity2Schema.java @@ -121,10 +121,12 @@ public class Entity2Schema extends Field2Schema { try { String primaryFiled = entityName + "Id"; createBuiltinField(tempEntity, primaryFiled, "ID", DisplayType.ID, null, null, null); - // 数字自增 ID + // 自增ID createBuiltinField(tempEntity, EntityHelper.AutoId, "AUTOID", DisplayType.NUMBER, null, null, null); // 助记码/搜索码 createBuiltinField(tempEntity, EntityHelper.QuickCode, "QUICKCODE", DisplayType.TEXT, null, null, null); + // 是否删除 + createBuiltinField(tempEntity, EntityHelper.IsDeleted, "ISDELETED", DisplayType.BOOL, null, null, null); if (haveNameField) { createField(tempEntity, nameFiled, entityLabel + "名称", DisplayType.TEXT, false, true, true, null, null, null, false); diff --git a/src/main/java/com/rebuild/server/metadata/entityhub/Field2Schema.java b/src/main/java/com/rebuild/server/metadata/entityhub/Field2Schema.java index 46dbabbe9..a63c23d42 100644 --- a/src/main/java/com/rebuild/server/metadata/entityhub/Field2Schema.java +++ b/src/main/java/com/rebuild/server/metadata/entityhub/Field2Schema.java @@ -218,9 +218,11 @@ public class Field2Schema { tempMetaId.add(record.getPrimary()); boolean autoValue = EntityHelper.AutoId.equals(fieldName); + String defaultValue = EntityHelper.IsDeleted.equals(fieldName) ? "F" : null; + Field unsafeField = new FieldImpl( fieldName, physicalName, fieldLabel, entity, displayType.getFieldType(), CascadeModel.Ignore, displayType.getMaxLength(), - dbNullable, creatable, updatable, true, 6, null, autoValue); + dbNullable, creatable, updatable, true, 6, defaultValue, autoValue); if (entity instanceof UnsafeEntity) { ((UnsafeEntity) entity).addField(unsafeField); } diff --git a/src/main/java/com/rebuild/server/service/base/GeneralEntityService.java b/src/main/java/com/rebuild/server/service/base/GeneralEntityService.java index fe1e2dfe5..786c23bb7 100644 --- a/src/main/java/com/rebuild/server/service/base/GeneralEntityService.java +++ b/src/main/java/com/rebuild/server/service/base/GeneralEntityService.java @@ -126,23 +126,25 @@ public class GeneralEntityService extends BaseService { } DisplayType dt = EasyMeta.getDisplayType(nameField); - if (dt == DisplayType.TEXT) { - String name = record.getString(nameField.getName()); - String qcode = null; - if (StringUtils.isNotBlank(name)) { - try { - qcode = PinyinHelper.getShortPinyin(name).toUpperCase(); - } catch (Exception e) { - LOG.error("ShortPinyin : " + name, e); - } - } - - if (StringUtils.isBlank(qcode)) { - record.setString(EntityHelper.QuickCode, StringUtils.EMPTY); - } else { - record.setString(EntityHelper.QuickCode, qcode); + if (dt != DisplayType.TEXT) { + return; + } + + String name = record.getString(nameField.getName()); + String qcode = null; + if (StringUtils.isNotBlank(name)) { + try { + qcode = PinyinHelper.getShortPinyin(name).toUpperCase(); + } catch (Exception e) { + LOG.error("QuickCode shorting error : " + name, e); } } + + if (StringUtils.isBlank(qcode)) { + record.setString(EntityHelper.QuickCode, StringUtils.EMPTY); + } else { + record.setString(EntityHelper.QuickCode, qcode); + } } /**