This commit is contained in:
FangfangZhao 2018-12-19 12:09:05 +08:00
parent 1f12dcb005
commit 1acaf9508d
23 changed files with 75 additions and 73 deletions

View file

@ -29,11 +29,11 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.rebuild.server.bizz.privileges.UserStore;
import com.rebuild.server.helper.cache.RecordOwningCache;
import com.rebuild.server.metadata.DynamicMetadataFactory;
import com.rebuild.server.query.QueryFactory;
import com.rebuild.server.service.CommonService;
import com.rebuild.server.service.SQLExecutor;
import com.rebuild.server.service.base.GeneralEntityService;
import com.rebuild.server.service.notification.NotificationService;
import com.rebuild.server.service.query.QueryFactory;
import com.rebuild.web.OnlineSessionStore;
import cn.devezhao.persist4j.PersistManagerFactory;

View file

@ -130,11 +130,11 @@ public class EntityQueryFilter implements Filter, QueryFilter {
if (de == BizzDepthEntry.PRIVATE) {
return appendShareFilter(entity, toMasterField,
String.format(ownFormat, EntityHelper.owningUser, user.getIdentity()));
String.format(ownFormat, EntityHelper.OwningUser, user.getIdentity()));
}
Department dept = user.getOwningDept();
String deptSql = String.format(ownFormat, EntityHelper.owningDept, dept.getIdentity());
String deptSql = String.format(ownFormat, EntityHelper.OwningDept, dept.getIdentity());
if (de == BizzDepthEntry.LOCAL) {
return appendShareFilter(entity, toMasterField, deptSql);
@ -145,7 +145,7 @@ public class EntityQueryFilter implements Filter, QueryFilter {
sqls.add(deptSql);
for (BusinessUnit child : dept.getAllChildren()) {
sqls.add(String.format(ownFormat, EntityHelper.owningDept, child.getIdentity()));
sqls.add(String.format(ownFormat, EntityHelper.OwningDept, child.getIdentity()));
}
return appendShareFilter(entity, toMasterField, "(" + StringUtils.join(sqls, " or ") + ")");
}

View file

@ -32,7 +32,7 @@ import com.rebuild.server.helper.manager.PickListManager;
import com.rebuild.server.metadata.MetadataHelper;
import com.rebuild.server.metadata.entityhub.DisplayType;
import com.rebuild.server.metadata.entityhub.EasyMeta;
import com.rebuild.server.query.AdvFilterParser;
import com.rebuild.server.service.query.AdvFilterParser;
import cn.devezhao.persist4j.Entity;
import cn.devezhao.persist4j.engine.ID;

View file

@ -61,13 +61,13 @@ public class DataListManager extends LayoutManager {
columnList.add(formattedColumn(namedField));
String namedFieldName = namedField.getName();
if (!StringUtils.equalsIgnoreCase(namedFieldName, EntityHelper.createdBy)
&& entityMeta.containsField(EntityHelper.createdBy)) {
columnList.add(formattedColumn(entityMeta.getField(EntityHelper.createdBy)));
if (!StringUtils.equalsIgnoreCase(namedFieldName, EntityHelper.CreatedBy)
&& entityMeta.containsField(EntityHelper.CreatedBy)) {
columnList.add(formattedColumn(entityMeta.getField(EntityHelper.CreatedBy)));
}
if (!StringUtils.equalsIgnoreCase(namedFieldName, EntityHelper.createdOn)
&& entityMeta.containsField(EntityHelper.createdOn)) {
columnList.add(formattedColumn(entityMeta.getField(EntityHelper.createdOn)));
if (!StringUtils.equalsIgnoreCase(namedFieldName, EntityHelper.CreatedOn)
&& entityMeta.containsField(EntityHelper.CreatedOn)) {
columnList.add(formattedColumn(entityMeta.getField(EntityHelper.CreatedOn)));
}
} else {
JSONArray config = (JSONArray) cfgs[1];

View file

@ -235,11 +235,11 @@ public class FormManager extends LayoutManager {
else {
if (!fieldMeta.isCreatable()) {
el.put("readonly", true);
if (fieldName.equals(EntityHelper.createdOn) || fieldName.equals(EntityHelper.modifiedOn)) {
if (fieldName.equals(EntityHelper.CreatedOn) || fieldName.equals(EntityHelper.ModifiedOn)) {
el.put("value", CalendarUtils.getUTCDateTimeFormat().format(now));
} else if (fieldName.equals(EntityHelper.createdBy) || fieldName.equals(EntityHelper.modifiedBy) || fieldName.equals(EntityHelper.owningUser)) {
} else if (fieldName.equals(EntityHelper.CreatedBy) || fieldName.equals(EntityHelper.ModifiedBy) || fieldName.equals(EntityHelper.OwningUser)) {
el.put("value", new Object[] { currentUser.getIdentity().toString(), currentUser.getFullName(), "User" });
} else if (fieldName.equals(EntityHelper.owningDept)) {
} else if (fieldName.equals(EntityHelper.OwningDept)) {
el.put("value", new Object[] { currentUser.getOwningDept().getIdentity().toString(), currentUser.getOwningDept().getName(), "Department" });
}
}

View file

@ -113,7 +113,7 @@ public class DynamicMetadataFactory extends ConfigurationMetadataFactory {
.addAttribute("default-value", (String) custom[10])
.addAttribute("ref-entity", (String) custom[11])
.addAttribute("cascade", (String) custom[12]);
if (fieldName.equals(EntityHelper.autoId)) {
if (fieldName.equals(EntityHelper.AutoId)) {
field.addAttribute("auto-value", "true");
}

View file

@ -45,7 +45,7 @@ public class EntityHelper {
* @return
*/
public static boolean hasPrivilegesField(Entity entity) {
if (entity.containsField(owningUser) && entity.containsField(owningDept)) {
if (entity.containsField(OwningUser) && entity.containsField(OwningDept)) {
return true;
}
return false;
@ -117,13 +117,14 @@ public class EntityHelper {
// 公共字段
public static final String autoId = "autoId";
public static final String createdOn = "createdOn";
public static final String createdBy = "createdBy";
public static final String modifiedOn = "modifiedOn";
public static final String modifiedBy = "modifiedBy";
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 CreatedOn = "createdOn";
public static final String CreatedBy = "createdBy";
public static final String ModifiedOn = "modifiedOn";
public static final String ModifiedBy = "modifiedBy";
public static final String OwningUser = "owningUser";
public static final String OwningDept = "owningDept";
// 系统实体

View file

@ -62,25 +62,25 @@ public class ExtRecordCreator extends JSONRecordCreator {
final Entity entity = r.getEntity();
final User editor = Application.getUserStore().getUser(r.getEditor());
if (entity.containsField(EntityHelper.modifiedOn)) {
r.setDate(EntityHelper.modifiedOn, now);
if (entity.containsField(EntityHelper.ModifiedOn)) {
r.setDate(EntityHelper.ModifiedOn, now);
}
if (entity.containsField(EntityHelper.modifiedBy)) {
r.setID(EntityHelper.modifiedBy, (ID) editor.getIdentity());
if (entity.containsField(EntityHelper.ModifiedBy)) {
r.setID(EntityHelper.ModifiedBy, (ID) editor.getIdentity());
}
if (isNew) {
if (entity.containsField(EntityHelper.createdOn)) {
r.setDate(EntityHelper.createdOn, now);
if (entity.containsField(EntityHelper.CreatedOn)) {
r.setDate(EntityHelper.CreatedOn, now);
}
if (entity.containsField(EntityHelper.createdBy)) {
r.setID(EntityHelper.createdBy, (ID) editor.getIdentity());
if (entity.containsField(EntityHelper.CreatedBy)) {
r.setID(EntityHelper.CreatedBy, (ID) editor.getIdentity());
}
if (entity.containsField(EntityHelper.owningUser)) {
r.setID(EntityHelper.owningUser, (ID) editor.getIdentity());
if (entity.containsField(EntityHelper.OwningUser)) {
r.setID(EntityHelper.OwningUser, (ID) editor.getIdentity());
}
if (entity.containsField(EntityHelper.owningDept)) {
r.setID(EntityHelper.owningDept, (ID) editor.getOwningDept().getIdentity());
if (entity.containsField(EntityHelper.OwningDept)) {
r.setID(EntityHelper.OwningDept, (ID) editor.getOwningDept().getIdentity());
}
}
}

View file

@ -136,8 +136,8 @@ public class MetadataHelper {
if (hasName != null) {
return hasName;
}
if (entity.containsField(EntityHelper.createdOn)) {
return entity.getField(EntityHelper.createdOn);
if (entity.containsField(EntityHelper.CreatedOn)) {
return entity.getField(EntityHelper.CreatedOn);
}
return entity.getPrimaryField();
}

View file

@ -49,13 +49,14 @@ public class EasyMeta implements BaseMeta {
private static final Set<String> BUILTIN_FIELD = new HashSet<>();
private static final Map<String, String[]> SYSENTITY_EXTMETA = new HashMap<>();
static {
BUILTIN_FIELD.add(EntityHelper.autoId);
BUILTIN_FIELD.add(EntityHelper.createdOn);
BUILTIN_FIELD.add(EntityHelper.createdBy);
BUILTIN_FIELD.add(EntityHelper.modifiedOn);
BUILTIN_FIELD.add(EntityHelper.modifiedBy);
BUILTIN_FIELD.add(EntityHelper.owningUser);
BUILTIN_FIELD.add(EntityHelper.owningDept);
BUILTIN_FIELD.add(EntityHelper.AutoId);
BUILTIN_FIELD.add(EntityHelper.QuickCode);
BUILTIN_FIELD.add(EntityHelper.CreatedOn);
BUILTIN_FIELD.add(EntityHelper.CreatedBy);
BUILTIN_FIELD.add(EntityHelper.ModifiedOn);
BUILTIN_FIELD.add(EntityHelper.ModifiedBy);
BUILTIN_FIELD.add(EntityHelper.OwningUser);
BUILTIN_FIELD.add(EntityHelper.OwningDept);
SYSENTITY_EXTMETA.put("User", new String[] { "account", "系统内建" });
SYSENTITY_EXTMETA.put("Department", new String[] { "accounts", "系统内建" });

View file

@ -96,20 +96,20 @@ public class Entity2Schema extends Field2Schema {
if (isSlave) {
record.setString("masterEntity", masterEntity);
}
record.setString("nameField", EntityHelper.createdOn);
record.setString("nameField", EntityHelper.CreatedOn);
record = Application.getCommonService().create(record);
tempMetaId.add(record.getPrimary());
Entity tempEntity = new UnsafeEntity(entityName, physicalName, entityLabel, typeCode, EntityHelper.createdOn);
Entity tempEntity = new UnsafeEntity(entityName, physicalName, entityLabel, typeCode, EntityHelper.CreatedOn);
String primaryFiled = entityName + "Id";
createBuiltinField(tempEntity, primaryFiled, "ID", DisplayType.ID, null, null, null);
createBuiltinField(tempEntity, EntityHelper.autoId, "AUTOID", DisplayType.NUMBER, null, null, null);
createBuiltinField(tempEntity, EntityHelper.AutoId, "AUTOID", DisplayType.NUMBER, null, null, null);
createBuiltinField(tempEntity, EntityHelper.createdBy, "创建人", DisplayType.REFERENCE, null, "User", null);
createBuiltinField(tempEntity, EntityHelper.createdOn, "创建时间", DisplayType.DATETIME, null, null, null);
createBuiltinField(tempEntity, EntityHelper.modifiedBy, "修改人", DisplayType.REFERENCE, null, "User", null);
createBuiltinField(tempEntity, EntityHelper.modifiedOn, "修改时间", DisplayType.DATETIME, null, null, null);
createBuiltinField(tempEntity, EntityHelper.CreatedBy, "创建人", DisplayType.REFERENCE, null, "User", null);
createBuiltinField(tempEntity, EntityHelper.CreatedOn, "创建时间", DisplayType.DATETIME, null, null, null);
createBuiltinField(tempEntity, EntityHelper.ModifiedBy, "修改人", DisplayType.REFERENCE, null, "User", null);
createBuiltinField(tempEntity, EntityHelper.ModifiedOn, "修改时间", DisplayType.DATETIME, null, null, null);
// 明细实体关联字段
// 明细实体无所属用户或部门使用主实体的
@ -118,8 +118,8 @@ public class Entity2Schema extends Field2Schema {
String masterField = masterEntity + "Id";
createBuiltinField(tempEntity, masterField, masterLabel, DisplayType.REFERENCE, "引用主记录(" + masterLabel + ")", masterEntity, CascadeModel.Delete);
} else {
createBuiltinField(tempEntity, EntityHelper.owningUser, "所属用户", DisplayType.REFERENCE, null, "User", null);
createBuiltinField(tempEntity, EntityHelper.owningDept, "所属部门", DisplayType.REFERENCE, null, "Department", null);
createBuiltinField(tempEntity, EntityHelper.OwningUser, "所属用户", DisplayType.REFERENCE, null, "User", null);
createBuiltinField(tempEntity, EntityHelper.OwningDept, "所属部门", DisplayType.REFERENCE, null, "Department", null);
}
boolean schemaReady = schema2Database(tempEntity);

View file

@ -213,7 +213,7 @@ public class Field2Schema {
record = Application.getCommonService().create(record);
tempMetaId.add(record.getPrimary());
boolean autoValue = EntityHelper.autoId.equals(fieldName);
boolean autoValue = EntityHelper.AutoId.equals(fieldName);
Field unsafeField = new FieldImpl(
fieldName, physicalName, fieldLabel, entity, displayType.getFieldType(), CascadeModel.Ignore, maxLength,
nullable, creatable, updatable, true, 6, null, autoValue);

View file

@ -24,7 +24,7 @@ import org.apache.commons.logging.LogFactory;
import com.alibaba.fastjson.JSONObject;
import com.rebuild.server.helper.BulkTask;
import com.rebuild.server.metadata.MetadataHelper;
import com.rebuild.server.query.AdvFilterParser;
import com.rebuild.server.service.query.AdvFilterParser;
import cn.devezhao.persist4j.Entity;
import cn.devezhao.persist4j.engine.ID;

View file

@ -169,8 +169,8 @@ public class GeneralEntityService extends BaseService {
User toUser = Application.getUserStore().getUser(to);
Record assigned = EntityHelper.forUpdate(record, (ID) toUser.getIdentity());
assigned.setID(EntityHelper.owningUser, (ID) toUser.getIdentity());
assigned.setID(EntityHelper.owningDept, (ID) toUser.getOwningDept().getIdentity());
assigned.setID(EntityHelper.OwningUser, (ID) toUser.getIdentity());
assigned.setID(EntityHelper.OwningDept, (ID) toUser.getOwningDept().getIdentity());
super.update(assigned);
Application.getRecordOwningCache().cleanOwningUser(record);

View file

@ -35,7 +35,7 @@ public class NotificationObserver extends OperateObserver {
@Override
public void onAssign(OperateContext context) {
ID from = context.getOperator();
ID to = context.getAfterRecord().getID(EntityHelper.owningUser);
ID to = context.getAfterRecord().getID(EntityHelper.OwningUser);
ID relatedRecordId = context.getRecordId();
String text = "@%s 分派了 1 条%s记录给你";

View file

@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.rebuild.server.query;
package com.rebuild.server.service.query;
import java.util.Date;
import java.util.Iterator;

View file

@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.rebuild.server.query;
package com.rebuild.server.service.query;
import java.util.ArrayList;
import java.util.HashSet;
@ -176,7 +176,7 @@ public class AdvFilterParser {
} else if ("SFB".equalsIgnoreCase(op)) {
Department dept = UserHelper.getDept(Application.currentCallerUser());
if (dept != null && fieldMeta.getReferenceEntities()[0].getEntityCode() == EntityHelper.User) {
sb.insert(sb.indexOf(" "), "." + EntityHelper.owningDept);
sb.insert(sb.indexOf(" "), "." + EntityHelper.OwningDept);
}
} else if ("SFD".equalsIgnoreCase(op)) {
Department dept = UserHelper.getDept(Application.currentCallerUser());

View file

@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.rebuild.server.query;
package com.rebuild.server.service.query;
import org.springframework.util.Assert;

View file

@ -34,8 +34,8 @@ import com.rebuild.server.Application;
import com.rebuild.server.bizz.UserHelper;
import com.rebuild.server.helper.manager.LayoutManager;
import com.rebuild.server.metadata.EntityHelper;
import com.rebuild.server.query.AdvFilterManager;
import com.rebuild.server.query.AdvFilterParser;
import com.rebuild.server.service.query.AdvFilterManager;
import com.rebuild.server.service.query.AdvFilterParser;
import com.rebuild.utils.JSONUtils;
import com.rebuild.web.BaseControll;
import com.rebuild.web.LayoutConfig;

View file

@ -40,7 +40,7 @@ import com.rebuild.server.helper.manager.LayoutManager;
import com.rebuild.server.metadata.EntityHelper;
import com.rebuild.server.metadata.MetadataHelper;
import com.rebuild.server.metadata.MetadataSorter;
import com.rebuild.server.query.AdvFilterManager;
import com.rebuild.server.service.query.AdvFilterManager;
import com.rebuild.web.BaseControll;
import com.rebuild.web.LayoutConfig;

View file

@ -129,7 +129,7 @@ public class RelatedListControll extends BaseControll {
if (count) {
baseSql = String.format(baseSql, "count(" + primaryField.getName() + ")");
} else {
baseSql = String.format(baseSql, primaryField.getName() + "," + namedField.getName() + "," + EntityHelper.modifiedOn);
baseSql = String.format(baseSql, primaryField.getName() + "," + namedField.getName() + "," + EntityHelper.ModifiedOn);
baseSql += " order by modifiedOn desc";
}
return baseSql;

View file

@ -31,8 +31,8 @@ import com.rebuild.server.metadata.EntityHelper;
import com.rebuild.server.metadata.MetadataHelper;
import com.rebuild.server.metadata.entityhub.DisplayType;
import com.rebuild.server.metadata.entityhub.EasyMeta;
import com.rebuild.server.query.AdvFilterManager;
import com.rebuild.server.query.AdvFilterParser;
import com.rebuild.server.service.query.AdvFilterManager;
import com.rebuild.server.service.query.AdvFilterParser;
import cn.devezhao.persist4j.Entity;
import cn.devezhao.persist4j.Field;
@ -159,10 +159,10 @@ public class JSONQueryParser {
String sortNode = queryElement.getString("sort");
if (StringUtils.isNotBlank(sortNode)) {
sqlSort.append(parseSort(sortNode));
} else if (entity.containsField(EntityHelper.modifiedOn)) {
sqlSort.append(EntityHelper.modifiedOn + " desc");
} else if (entity.containsField(EntityHelper.createdOn)) {
sqlSort.append(EntityHelper.createdOn + " desc");
} else if (entity.containsField(EntityHelper.ModifiedOn)) {
sqlSort.append(EntityHelper.ModifiedOn + " desc");
} else if (entity.containsField(EntityHelper.CreatedOn)) {
sqlSort.append(EntityHelper.CreatedOn + " desc");
}
sqlBase.append(sqlSort);

View file

@ -54,7 +54,7 @@
</constructor-arg>
</bean>
<bean class="com.rebuild.server.query.QueryFactory">
<bean class="com.rebuild.server.service.query.QueryFactory">
<constructor-arg index="0" ref="persistManagerFactory" />
</bean>