#211 merge v1.11.0

Merged Fangfang Zhao devezhao Pseudo commit used to compare (a3c8b2c...26a6efe)
Coverage Reach
server/service/base/GeneralEntityService.java server/service/base/ApprovalStepService.java server/service/base/QuickCodeReindexTask.java server/service/base/AttachmentAwareObserver.java server/service/base/RecordMerger.java server/service/base/RevisionHistoryObserver.java server/service/base/BulkBacthUpdate.java server/service/base/BulkContext.java server/service/base/BulkShare.java server/service/base/BulkAssign.java server/service/base/BulkOperator.java server/service/base/SeriesReindexTask.java server/service/base/AttachmentFolderService.java server/service/base/RedisQueueObserver.java server/service/base/BulkDelete.java server/service/base/BulkUnshare.java server/service/bizz/privileges/UserStore.java server/service/bizz/privileges/PrivilegesManager.java server/service/bizz/privileges/PrivilegesGuardInterceptor.java server/service/bizz/privileges/RoleBaseQueryFilter.java server/service/bizz/privileges/User.java server/service/bizz/privileges/Department.java server/service/bizz/privileges/ZeroEntry.java server/service/bizz/privileges/ZeroPrivileges.java server/service/bizz/privileges/ZeroPermission.java server/service/bizz/UserService.java server/service/bizz/RoleService.java server/service/bizz/TeamService.java server/service/bizz/DepartmentService.java server/service/bizz/ChangeOwningDeptTask.java server/service/bizz/CurrentCaller.java server/service/query/AdvFilterParser.java server/service/query/ParserTokens.java server/service/query/QueryFactory.java server/service/configuration/ClassificationService.java server/service/configuration/PickListService.java server/service/configuration/ProjectConfigService.java server/service/configuration/RobotApprovalConfigService.java server/service/configuration/ConfigurationService.java server/service/configuration/ProjectPlanConfigService.java server/service/configuration/AutoFillinConfigService.java server/service/configuration/DataReportConfigService.java server/service/configuration/RobotTriggerConfigService.java server/service/configuration/RebuildApiService.java server/service/configuration/AdvFilterService.java server/service/configuration/ChartConfigService.java server/service/configuration/DashboardConfigService.java server/service/configuration/LayoutConfigService.java server/service/notification/NotificationObserver.java server/service/notification/NotificationService.java server/service/notification/MessageBuilder.java server/service/notification/Message.java server/service/notification/NotificationOnce.java server/service/project/ProjectTaskService.java server/service/project/ProjectCommentService.java server/service/project/ProjectHelper.java server/service/project/BaseTaskService.java server/service/feeds/BaseFeedsService.java server/service/feeds/FeedsCommentService.java server/service/feeds/FeedsService.java server/service/ObservableService.java server/service/CommonsService.java server/service/OperatingObserver.java server/service/SQLExecutor.java server/service/OperatingContext.java server/service/BaseServiceImpl.java server/service/PerHourJob.java server/service/BaseService.java server/service/TransactionManual.java server/business/charts/ChartData.java server/business/charts/TableBuilder.java server/business/charts/builtin/ApprovalList.java server/business/charts/builtin/FeedsSchedule.java server/business/charts/TreeBuilder.java server/business/charts/TableChart.java server/business/charts/ChartsFactory.java server/business/charts/FunnelChart.java server/business/charts/RadarChart.java server/business/charts/ScatterChart.java server/business/charts/LineChart.java server/business/charts/TreemapChart.java server/business/charts/Dimension.java server/business/charts/Axis.java server/business/charts/Numerical.java server/business/charts/PieChart.java server/business/charts/IndexChart.java server/business/charts/FormatCalc.java server/business/charts/FormatStyle.java server/business/charts/ChartsHelper.java server/business/charts/FormatSort.java server/business/charts/BarChart.java server/business/trigger/impl/FieldAggregation.java server/business/trigger/impl/TriggerByTimerJob.java server/business/trigger/impl/AggregationEvaluator.java server/business/trigger/impl/CompatibleValueConversion.java server/business/trigger/impl/AutoAssign.java server/business/trigger/impl/SendNotification.java server/business/trigger/impl/FieldWriteback.java server/business/trigger/impl/AutoShare.java server/business/trigger/impl/AutoApproval.java server/business/trigger/RobotTriggerObserver.java server/business/trigger/ActionType.java server/business/trigger/TriggerWhen.java server/business/trigger/ActionContext.java server/business/trigger/ActionFactory.java server/business/trigger/RobotTriggerManual.java server/business/approval/ApprovalProcessor.java server/business/approval/FlowParser.java server/business/approval/FlowNodeGroup.java server/business/approval/FlowNode.java server/business/approval/FlowBranch.java server/business/approval/ApprovalStatus.java server/business/approval/ApprovalHelper.java server/business/approval/ApprovalState.java server/business/approval/ApprovalFields2Schema.java server/business/approval/FormBuilder.java server/business/dataimport/RecordCheckout.java server/business/dataimport/DataImporter.java server/business/dataimport/DataExporter.java server/business/dataimport/ImportRule.java server/business/dataimport/DataFileParser.java server/business/dataimport/ColumnWidthStrategy.java server/business/rbstore/MetaschemaImporter.java server/business/rbstore/MetaSchemaGenerator.java server/business/rbstore/ClassificationImporter.java server/business/rbstore/ClassificationFileImporter.java server/business/rbstore/RBStore.java server/business/datareport/EasyExcelGenerator.java server/business/datareport/TemplateExtractor.java server/business/datareport/ReportGenerator.java server/business/recyclebin/RecycleRestore.java server/business/recyclebin/RecycleStore.java server/business/recyclebin/RecycleBean.java server/business/recyclebin/RecycleBinCleanerJob.java server/business/recyclebin/RestoreRecordCreator.java server/business/feeds/FeedsScheduleJob.java server/business/feeds/FeedsHelper.java server/business/feeds/FeedsType.java server/business/feeds/FeedsScope.java server/business/series/IncreasingVar.java server/business/series/SeriesGenerator.java server/business/series/SeriesZeroResetJob.java server/business/series/TimeVar.java server/business/series/SeriesGeneratorFactory.java server/business/series/SeriesVar.java server/business/files/FilesHelper.java server/helper/setup/Installer.java server/helper/setup/DatabaseBackup.java server/helper/setup/UpgradeDatabase.java server/helper/setup/UpgradeScriptReader.java server/helper/datalist/QueryParser.java server/helper/datalist/DataListWrapper.java server/helper/datalist/BatchOperatorQuery.java server/helper/datalist/ProtocolFilterParser.java server/helper/datalist/DefaultDataListControl.java server/helper/cache/JedisCacheDriver.java server/helper/cache/RecentlyUsedCache.java server/helper/cache/BaseCacheTemplate.java server/helper/cache/RecordOwningCache.java server/helper/cache/EhcacheDriver.java server/helper/cache/CommonCache.java server/helper/fieldvalue/FieldValueWrapper.java server/helper/fieldvalue/ContentWithFieldVars.java server/helper/fieldvalue/BarCodeGenerator.java server/helper/SMSender.java server/helper/QiniuCloud.java server/helper/language/LanguageBundle.java server/helper/language/Languages.java server/helper/task/HeavyTask.java server/helper/task/TaskExecutors.java server/helper/state/StateManager.java server/helper/state/StateHelper.java server/helper/state/HowtoState.java server/helper/SysConfiguration.java server/helper/AesPreferencesConfigurer.java server/helper/License.java server/helper/KVStorage.java server/helper/ConfigurableItem.java server/helper/VCode.java server/helper/DistributedJobBean.java server/helper/FormDataBuilder.java server/helper/BlackList.java server/helper/SetUser.java server/configuration/portals/FormsBuilder.java server/configuration/portals/NavBuilder.java server/configuration/portals/ShareToManager.java server/configuration/portals/ViewAddonsManager.java server/configuration/portals/PickListManager.java server/configuration/portals/ClassificationManager.java server/configuration/portals/DataListManager.java server/configuration/portals/ChartManager.java server/configuration/portals/BaseLayoutManager.java server/configuration/portals/MultiSelectManager.java server/configuration/portals/NavManager.java server/configuration/portals/FormsManager.java server/configuration/ProjectManager.java server/configuration/RobotTriggerManager.java server/configuration/AutoFillinManager.java server/configuration/RobotApprovalManager.java server/configuration/DataReportManager.java server/configuration/ConfigEntry.java server/configuration/RebuildApiManager.java server/configuration/FlowDefinition.java server/metadata/entity/Field2Schema.java server/metadata/entity/Entity2Schema.java server/metadata/entity/EasyMeta.java server/metadata/entity/DisplayType.java server/metadata/entity/MetaEntityService.java server/metadata/entity/MetaFieldService.java server/metadata/entity/UnsafeEntity.java server/metadata/entity/FieldExtConfigProps.java server/metadata/MetadataHelper.java server/metadata/DynamicMetadataFactory.java server/metadata/DefaultValueHelper.java server/metadata/MetadataSorter.java server/metadata/EntityRecordCreator.java server/metadata/EntityHelper.java server/Application.java server/ServerStatus.java server/ServerListener.java api/general/EntityCreate.java api/general/EntityList.java api/general/EntityGet.java api/general/ApiDataListWrapper.java api/general/EntityUpdate.java api/general/EntityDelete.java api/general/ApiDataListControl.java api/ApiGateway.java api/metadata/ClassificationData.java api/metadata/FieldList.java api/metadata/EntityList.java api/ApiContext.java api/LoginToken.java api/Controll.java api/AuthTokenManager.java api/BaseApi.java api/SystemTime.java utils/AppUtils.java utils/HttpUtils.java utils/MaxBackupIndexDailyRollingFileAppender.java utils/LocationUtils.java utils/AES.java utils/CommonsUtils.java utils/JSONUtils.java utils/ExcelUtils.java utils/RbRecordCodec.java utils/FileFilterByLastModified.java utils/RbDateCodec.java utils/RateLimiters.java utils/MarkdownUtils.java

No flags found

Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.

e.g., #unittest #integration

#production #enterprise

#frontend #backend

Learn more about Codecov Flags here.

Showing 142 of 300 files from the diff.
Other files ignored by Codecov
.gitignore has changed.
package-lock.json was deleted.
.travis.yml has changed.
pom.xml has changed.
.eslintrc.json has changed.
package.json has changed.
@rbv was deleted.

@@ -1,19 +1,8 @@
Loading
1 1
/*
2 -
rebuild - Building your business-systems freely.
3 -
Copyright (C) 2018 devezhao <zhaofang123@gmail.com>
2 +
Copyright (c) REBUILD <https://getrebuild.com/> and its owners. All rights reserved.
4 3
5 -
This program is free software: you can redistribute it and/or modify
6 -
it under the terms of the GNU General Public License as published by
7 -
the Free Software Foundation, either version 3 of the License, or
8 -
(at your option) any later version.
9 -
10 -
This program is distributed in the hope that it will be useful,
11 -
but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -
GNU General Public License for more details.
14 -
15 -
You should have received a copy of the GNU General Public License
16 -
along with this program. If not, see <https://www.gnu.org/licenses/>.
4 +
rebuild is dual-licensed under commercial and open source licenses (GPLv3).
5 +
See LICENSE and COMMERCIAL in the project root for license information.
17 6
*/
18 7
19 8
package com.rebuild.server.configuration.portals;
@@ -112,7 +101,7 @@
Loading
112 101
					Field parentField = entityMeta.getField(fieldPath[0]);
113 102
					if (!filter) {
114 103
						formatted = formatField(lastField, parentField);
115 -
					} else if (Application.getSecurityManager().allowRead(user, lastField.getOwnEntity().getEntityCode())) {
104 +
					} else if (Application.getPrivilegesManager().allowRead(user, lastField.getOwnEntity().getEntityCode())) {
116 105
						formatted = formatField(lastField, parentField);
117 106
					}
118 107
				}

@@ -1,19 +1,8 @@
Loading
1 1
/*
2 -
rebuild - Building your business-systems freely.
3 -
Copyright (C) 2018 devezhao <zhaofang123@gmail.com>
2 +
Copyright (c) REBUILD <https://getrebuild.com/> and its owners. All rights reserved.
4 3
5 -
This program is free software: you can redistribute it and/or modify
6 -
it under the terms of the GNU General Public License as published by
7 -
the Free Software Foundation, either version 3 of the License, or
8 -
(at your option) any later version.
9 -
10 -
This program is distributed in the hope that it will be useful,
11 -
but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -
GNU General Public License for more details.
14 -
15 -
You should have received a copy of the GNU General Public License
16 -
along with this program. If not, see <https://www.gnu.org/licenses/>.
4 +
rebuild is dual-licensed under commercial and open source licenses (GPLv3).
5 +
See LICENSE and COMMERCIAL in the project root for license information.
17 6
*/
18 7
19 8
package com.rebuild.server.service;
@@ -26,10 +15,14 @@
Loading
26 15
import com.rebuild.server.Application;
27 16
import com.rebuild.server.helper.cache.NoRecordFoundException;
28 17
import com.rebuild.server.metadata.EntityHelper;
18 +
import org.apache.commons.logging.Log;
19 +
import org.apache.commons.logging.LogFactory;
29 20
import org.springframework.util.Assert;
30 21
31 22
import java.util.Iterator;
23 +
import java.util.List;
32 24
import java.util.Observable;
25 +
import java.util.Observer;
33 26
34 27
/**
35 28
 * 可注入观察者的服务
@@ -39,20 +32,38 @@
Loading
39 32
 * 
40 33
 * @see OperatingObserver
41 34
 */
42 -
public abstract class ObservableService extends Observable implements EntityService {
35 +
public abstract class ObservableService extends Observable implements ServiceSpec {
36 +
37 +
	private static final Log LOG = LogFactory.getLog(ObservableService.class);
43 38
44 39
	/**
45 40
	 * 删除前触发的动作
46 41
	 */
47 42
	public static final Permission DELETE_BEFORE = new BizzPermission("DELETE_BEFORE", 0, false);
48 43
	
49 -
	final protected ServiceSpec delegate;
44 +
	final protected ServiceSpec delegateService;
50 45
	
51 46
	/**
52 47
	 * @param aPMFactory
53 48
	 */
54 -
	public ObservableService(PersistManagerFactory aPMFactory) {
55 -
		this.delegate = new SystemEntityService(aPMFactory);
49 +
	protected ObservableService(PersistManagerFactory aPMFactory) {
50 +
		this(aPMFactory, null);
51 +
	}
52 +
53 +
	/**
54 +
	 * @param aPMFactory
55 +
	 * @param observers
56 +
	 */
57 +
	protected ObservableService(PersistManagerFactory aPMFactory, List<Observer> observers) {
58 +
		this.delegateService = new BaseServiceImpl(aPMFactory);
59 +
60 +
		// 注入观察者 @see application-ctx.xml
61 +
		if (observers != null) {
62 +
			for (Observer o : observers) {
63 +
				addObserver(o);
64 +
				LOG.info(this + " add observer : " + o);
65 +
			}
66 +
		}
56 67
	}
57 68
	
58 69
	@Override
@@ -62,7 +73,7 @@
Loading
62 73
63 74
	@Override
64 75
	public Record create(Record record) {
65 -
		record = delegate.create(record);
76 +
		record = delegateService.create(record);
66 77
		
67 78
		if (countObservers() > 0) {
68 79
			setChanged();
@@ -75,7 +86,7 @@
Loading
75 86
	public Record update(Record record) {
76 87
		final Record before = countObservers() > 0 ? record(record) : null;
77 88
		
78 -
		record = delegate.update(record);
89 +
		record = delegateService.update(record);
79 90
		
80 91
		if (countObservers() > 0) {
81 92
			setChanged();
@@ -96,7 +107,7 @@
Loading
96 107
			notifyObservers(OperatingContext.create(Application.getCurrentUser(), DELETE_BEFORE, deleted, null));
97 108
		}
98 109
		
99 -
		int affected = delegate.delete(recordId);
110 +
		int affected = delegateService.delete(recordId);
100 111
		
101 112
		if (countObservers() > 0) {
102 113
			setChanged();
@@ -112,7 +123,7 @@
Loading
112 123
	 * @return
113 124
	 */
114 125
	protected Record record(Record base) {
115 -
		ID primary = base.getPrimary();
126 +
		final ID primary = base.getPrimary();
116 127
		Assert.notNull(primary, "Record primary not be bull");
117 128
		
118 129
		StringBuilder sql = new StringBuilder("select ");
@@ -125,15 +136,8 @@
Loading
125 136
		
126 137
		Record current = Application.createQueryNoFilter(sql.toString()).setParameter(1, primary).record();
127 138
		if (current == null) {
128 -
			throw new NoRecordFoundException("ID: " + primary);
139 +
			throw new NoRecordFoundException("ID : " + primary);
129 140
		}
130 141
		return current;
131 142
	}
132 -
	
133 -
	/**
134 -
	 * @return
135 -
	 */
136 -
	protected ServiceSpec delegate() {
137 -
		return delegate;
138 -
	}
139 143
}

@@ -37,10 +37,10 @@
Loading
37 37
38 38
	/**
39 39
	 * API 执行。
40 -
	 * 处理失败应抛出 {@link ApiInvokeException} 异常(或其子类)或返回错误 ${@link #formatFailure(String)}
40 +
	 * 返回结果应该使用 #formatSuccess 或 #formatFailure 封装。或者也可以直接抛出 {@link ApiInvokeException} 异常
41 41
	 *
42 42
	 * @param context
43 -
	 * @return #formatSuccess or #formatFailure
43 +
	 * @return Use #formatSuccess or #formatFailure
44 44
	 * @throws ApiInvokeException
45 45
	 */
46 46
	abstract public JSON execute(ApiContext context) throws ApiInvokeException;

@@ -17,6 +17,7 @@
Loading
17 17
import com.rebuild.server.Application;
18 18
import com.rebuild.server.ServerListener;
19 19
import com.rebuild.server.helper.language.Languages;
20 +
import com.rebuild.server.service.bizz.privileges.PrivilegesManager;
20 21
import com.rebuild.server.service.bizz.privileges.ZeroEntry;
21 22
import com.rebuild.web.admin.AdminEntryControll;
22 23
import org.apache.commons.lang.StringUtils;
@@ -206,10 +207,10 @@
Loading
206 207
	 * @param request
207 208
	 * @param entry
208 209
	 * @return
209 -
	 * @see com.rebuild.server.service.bizz.privileges.SecurityManager
210 +
	 * @see PrivilegesManager
210 211
	 */
211 212
	public static boolean allow(HttpServletRequest request, ZeroEntry entry) {
212 -
		return Application.getSecurityManager().allow(getRequestUser(request), entry);
213 +
		return Application.getPrivilegesManager().allow(getRequestUser(request), entry);
213 214
	}
214 215
215 216
	/**

@@ -1,19 +1,8 @@
Loading
1 1
/*
2 -
rebuild - Building your business-systems freely.
3 -
Copyright (C) 2018 devezhao <zhaofang123@gmail.com>
2 +
Copyright (c) REBUILD <https://getrebuild.com/> and its owners. All rights reserved.
4 3
5 -
This program is free software: you can redistribute it and/or modify
6 -
it under the terms of the GNU General Public License as published by
7 -
the Free Software Foundation, either version 3 of the License, or
8 -
(at your option) any later version.
9 -
10 -
This program is distributed in the hope that it will be useful,
11 -
but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -
GNU General Public License for more details.
14 -
15 -
You should have received a copy of the GNU General Public License
16 -
along with this program. If not, see <https://www.gnu.org/licenses/>.
4 +
rebuild is dual-licensed under commercial and open source licenses (GPLv3).
5 +
See LICENSE and COMMERCIAL in the project root for license information.
17 6
*/
18 7
19 8
package com.rebuild.server.service.query;
@@ -27,7 +16,7 @@
Loading
27 16
import cn.devezhao.persist4j.query.NativeQuery;
28 17
import com.rebuild.server.Application;
29 18
import com.rebuild.server.metadata.MetadataHelper;
30 -
import com.rebuild.server.service.bizz.privileges.EntityQueryFilter;
19 +
import com.rebuild.server.service.bizz.privileges.RoleBaseQueryFilter;
31 20
import org.apache.commons.lang.StringUtils;
32 21
import org.springframework.util.Assert;
33 22
@@ -36,6 +25,7 @@
Loading
36 25
 * 
37 26
 * @author zhaofang123@gmail.com
38 27
 * @since 05/21/2017
28 +
 * @see RoleBaseQueryFilter
39 29
 */
40 30
public class QueryFactory {
41 31
	
@@ -63,15 +53,15 @@
Loading
63 53
	 * @return
64 54
	 */
65 55
	public Query createQuery(String ajql, ID user) {
66 -
		return createQuery(ajql, Application.getSecurityManager().createQueryFilter(user));
56 +
		return createQuery(ajql, Application.getPrivilegesManager().createQueryFilter(user));
67 57
	}
68 58
	
69 59
	/**
70 60
	 * @param ajql
71 61
	 * @return
72 62
	 */
73 63
	public Query createQueryNoFilter(String ajql) {
74 -
		return createQuery(ajql, EntityQueryFilter.ALLOWED);
64 +
		return createQuery(ajql, RoleBaseQueryFilter.ALLOWED);
75 65
	}
76 66
	
77 67
	/**

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Learn more Showing 31 files with coverage changes found.

Changes in src/main/java/com/rebuild/server/business/dataimport/ColumnWidthStrategy.java
-4
+4
Loading file...
Changes in src/main/java/com/rebuild/server/helper/cache/CommonCache.java
-1
+1
Loading file...
Changes in src/main/java/com/rebuild/server/helper/fieldvalue/ContentWithFieldVars.java
-6
+6
Loading file...
Changes in src/main/java/com/rebuild/utils/LocationUtils.java
-6
-1
+7
Loading file...
Changes in src/main/java/com/rebuild/server/service/BaseService.java
-1
-1
+2
Loading file...
Changes in src/main/java/com/rebuild/server/helper/KVStorage.java
-2
+2
Loading file...
Changes in src/main/java/com/rebuild/server/helper/task/HeavyTask.java
-3
+3
Loading file...
Changes in src/main/java/com/rebuild/server/metadata/MetadataHelper.java
-3
+1
+2
Loading file...
Changes in src/main/java/com/rebuild/server/service/OperatingObserver.java
-1
+1
Loading file...
Changes in src/main/java/com/rebuild/server/helper/cache/BaseCacheTemplate.java
-1
+1
Loading file...
Changes in src/main/java/com/rebuild/server/helper/AesPreferencesConfigurer.java
-1
+1
Loading file...
New file src/main/java/com/rebuild/server/service/project/ProjectCommentService.java
New
Loading file...
New file src/main/java/com/rebuild/server/service/configuration/ProjectPlanConfigService.java
New
Loading file...
New file src/main/java/com/rebuild/utils/ExcelUtils.java
New
Loading file...
New file src/main/java/com/rebuild/server/service/project/BaseTaskService.java
New
Loading file...
New file src/main/java/com/rebuild/server/service/project/ProjectHelper.java
New
Loading file...
New file src/main/java/com/rebuild/server/business/trigger/impl/AutoApproval.java
New
Loading file...
New file src/main/java/com/rebuild/server/business/trigger/impl/TriggerByTimerJob.java
New
Loading file...
New file src/main/java/com/rebuild/server/service/configuration/ProjectConfigService.java
New
Loading file...
New file src/main/java/com/rebuild/server/service/project/ProjectTaskService.java
New
Loading file...
New file src/main/java/com/rebuild/utils/HttpUtils.java
New
Loading file...
New file src/main/java/com/rebuild/server/business/approval/ApprovalStatus.java
New
Loading file...
New file src/main/java/com/rebuild/server/configuration/ProjectManager.java
New
Loading file...
Changes in src/main/java/com/rebuild/server/service/bizz/privileges/UserStore.java
-3
-4
+7
Loading file...
Changes in src/main/java/com/rebuild/server/service/bizz/privileges/PrivilegesManager.java
-4
+4
Loading file...
Changes in src/main/java/com/rebuild/server/configuration/ConfigEntry.java
-1
+1
Loading file...
Changes in src/main/java/com/rebuild/server/business/rbstore/RBStore.java
-1
+1
Loading file...
Changes in src/main/java/com/rebuild/api/metadata/FieldList.java
-1
-1
+2
Loading file...
Changes in src/main/java/com/rebuild/server/service/CommonsService.java
-9
+8
+1
Loading file...
Changes in src/main/java/com/rebuild/server/business/rbstore/ClassificationImporter.java
-2
-19
+21
Loading file...
Changes in src/main/java/com/rebuild/server/service/bizz/TeamService.java
-26
+22
+4
Loading file...

127 Commits

Hiding 3 contexual commits
+11
-1
-10
Hiding 6 contexual commits
+15
-1
+3
+13
Hiding 8 contexual commits
+2 Files
+82
+15
+5
+62
Hiding 10 contexual commits
+8
-10
+7
+11