mirror of
https://github.com/getrebuild/rebuild.git
synced 2025-02-25 23:05:06 +08:00
repkg
This commit is contained in:
parent
1f12dcb005
commit
1acaf9508d
23 changed files with 75 additions and 73 deletions
|
@ -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;
|
||||
|
|
|
@ -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 ") + ")");
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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" });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
// 系统实体
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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", "系统内建" });
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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记录给你";
|
||||
|
|
|
@ -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;
|
|
@ -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());
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
Loading…
Reference in a new issue