提交 7693557b 编写于 作者: O o2null

修复更新脚本无法及时更新etag的bug

上级 831d47f5
......@@ -5,11 +5,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import java.util.concurrent.CompletableFuture;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.project.cache.Cache.CacheCategory;
import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import com.x.base.core.project.jaxrs.WoMaxAgeFastETag;
......@@ -20,7 +16,6 @@ import com.x.processplatform.core.entity.content.WorkCompletedProperties;
import com.x.processplatform.core.entity.content.WorkCompletedProperties.RelatedForm;
import com.x.processplatform.core.entity.content.WorkCompletedProperties.RelatedScript;
import com.x.processplatform.core.entity.element.Form;
import com.x.processplatform.core.entity.element.FormProperties;
import com.x.processplatform.core.entity.element.Script;
abstract class BaseAction extends StandardJaxrsAction {
......
......@@ -48,8 +48,14 @@ class V2LookupWorkOrWorkCompleted extends BaseAction {
if (optional.isPresent()) {
this.wo = (Wo) optional.get();
} else {
// 必须重新取出,因为getWorkWorkCompletedForm的form是从缓存中取出,关联值是老的,要重新计算etag需要重新获取更新后的值.
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
this.form = emc.find(form.getId(), Form.class);
}
if (null != this.form) {
List<String> list = new ArrayList<>();
CompletableFuture<List<String>> relatedFormFuture = this.relatedFormFuture(this.form.getProperties());
CompletableFuture<List<String>> relatedFormFuture = this
.relatedFormFuture(this.form.getProperties());
CompletableFuture<List<String>> relatedScriptFuture = this
.relatedScriptFuture(this.form.getProperties());
list.add(this.form.getId() + this.form.getUpdateTime().getTime());
......@@ -63,6 +69,7 @@ class V2LookupWorkOrWorkCompleted extends BaseAction {
CacheManager.put(cacheCategory, cacheKey, wo);
}
}
}
result.setData(wo);
return result;
}
......@@ -99,10 +106,9 @@ class V2LookupWorkOrWorkCompleted extends BaseAction {
List<String> list = new ArrayList<>();
if (ListTools.isNotEmpty(properties.getRelatedFormList())) {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
Business business = new Business(emc);
Form f;
for (String id : properties.getRelatedFormList()) {
f = business.form().pick(id);
f = emc.find(id, Form.class);
if (null != f) {
list.add(f.getId() + f.getUpdateTime().getTime());
}
......@@ -121,7 +127,7 @@ class V2LookupWorkOrWorkCompleted extends BaseAction {
if ((null != properties.getRelatedScriptMap()) && (properties.getRelatedScriptMap().size() > 0)) {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
Business business = new Business(emc);
list = convertScriptToCacheTag(business, properties.getMobileRelatedScriptMap());
list = convertScriptToCacheTag(business, properties.getRelatedScriptMap());
} catch (Exception e) {
logger.error(e);
}
......
......@@ -48,8 +48,14 @@ class V2LookupWorkOrWorkCompletedMobile extends BaseAction {
if (optional.isPresent()) {
this.wo = (Wo) optional.get();
} else {
// 必须重新取出,因为getWorkWorkCompletedForm的form是从缓存中取出,关联值是老的,要重新计算etag需要重新获取更新后的值.
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
this.form = emc.find(form.getId(), Form.class);
}
if (null != this.form) {
List<String> list = new ArrayList<>();
CompletableFuture<List<String>> relatedFormFuture = this.relatedFormFuture(this.form.getProperties());
CompletableFuture<List<String>> relatedFormFuture = this
.relatedFormFuture(this.form.getProperties());
CompletableFuture<List<String>> relatedScriptFuture = this
.relatedScriptFuture(this.form.getProperties());
list.add(this.form.getId() + this.form.getUpdateTime().getTime());
......@@ -63,6 +69,7 @@ class V2LookupWorkOrWorkCompletedMobile extends BaseAction {
CacheManager.put(cacheCategory, cacheKey, wo);
}
}
}
result.setData(wo);
return result;
}
......@@ -99,10 +106,9 @@ class V2LookupWorkOrWorkCompletedMobile extends BaseAction {
List<String> list = new ArrayList<>();
if (ListTools.isNotEmpty(properties.getMobileRelatedFormList())) {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
Business business = new Business(emc);
Form f;
for (String id : properties.getMobileRelatedFormList()) {
f = business.form().pick(id);
f = emc.find(id, Form.class);
if (null != f) {
list.add(f.getId() + f.getUpdateTime().getTime());
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册