提交 d450ffc1 编写于 作者: Z zhourui

去重一次提交中多条待阅和参阅

上级 e5fc8e0d
......@@ -3,7 +3,7 @@
"captchaLogin": true,
"codeLogin": true,
"bindLogin": true,
"faceLogin": false,
"faceLogin": true,
"password": "(var v \\u003d person.getMobile();\\u000a return v.substring(v.length - 6))",
"passwordPeriod": 0.0,
"passwordRegex": "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,}$",
......@@ -35,4 +35,4 @@
"###failureCount": "尝试登录次数###",
"###tokenExpiredMinutes": "token时长,分钟###",
"###personUnitOrderByAsc": "人员组织排序是否为升序,true为升序(默认),false为降序###"
}
}
\ No newline at end of file
package com.x.processplatform.assemble.surface.jaxrs.work;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
......@@ -24,7 +23,6 @@ import com.x.base.core.project.logger.Audit;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.organization.Unit;
import com.x.base.core.project.tools.DefaultCharset;
import com.x.base.core.project.tools.ListTools;
import com.x.base.core.project.tools.SortTools;
import com.x.organization.core.express.Organization;
......
......@@ -5,6 +5,7 @@ import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map.Entry;
import java.util.TreeSet;
import java.util.stream.Collectors;
import javax.script.Bindings;
......@@ -981,22 +982,28 @@ public class AeiObjects extends GsonPropertyObject {
}
private void commitReadCreatePart() {
this.getCreateReads().stream().forEach(o -> {
Read obj;
try {
obj = this.getReads().stream().filter(p -> StringUtils.equals(o.getJob(), p.getJob())
&& StringUtils.equals(o.getPerson(), p.getPerson())).findFirst().orElse(null);
if (null == obj) {
this.business.entityManagerContainer().persist(o, CheckPersistType.all);
/* 创建待阅的参阅 */
this.createReview(new Review(this.getWork(), o.getPerson()));
} else {
o.copyTo(obj, JpaObject.FieldsUnmodify);
}
} catch (Exception e) {
logger.error(e);
}
});
// 去重可能的在同一次提交中产生的对同一个人的多份Read
this.getCreateReads().stream()
.collect(Collectors.collectingAndThen(
Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(o -> o.getPerson() + o.getJob()))),
ArrayList::new))
.stream().forEach(o -> {
Read obj;
try {
obj = this.getReads().stream().filter(p -> StringUtils.equals(o.getJob(), p.getJob())
&& StringUtils.equals(o.getPerson(), p.getPerson())).findFirst().orElse(null);
if (null == obj) {
this.business.entityManagerContainer().persist(o, CheckPersistType.all);
/* 创建待阅的参阅 */
this.createReview(new Review(this.getWork(), o.getPerson()));
} else {
o.copyTo(obj, JpaObject.FieldsUnmodify);
}
} catch (Exception e) {
logger.error(e);
}
});
}
private void commitReadUpdatePart() {
......@@ -1095,22 +1102,28 @@ public class AeiObjects extends GsonPropertyObject {
}
private void commitReviewCreatePart() {
this.getCreateReviews().stream().forEach(o -> {
Review obj;
try {
/* 参阅唯一 */
obj = this.getReviews().stream().filter(p -> StringUtils.equals(o.getJob(), p.getJob())
&& StringUtils.equals(o.getPerson(), p.getPerson())).findFirst().orElse(null);
if (null == obj) {
this.business.entityManagerContainer().persist(o, CheckPersistType.all);
} else {
// 如果逻辑上相同的已阅已经存在,覆盖内容.
o.copyTo(obj, JpaObject.FieldsUnmodify);
}
} catch (Exception e) {
logger.error(e);
}
});
// 去重可能的在同一次提交中产生的对同一个人的多份Review
this.getCreateReviews().stream()
.collect(Collectors.collectingAndThen(
Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(o -> o.getPerson() + o.getJob()))),
ArrayList::new))
.stream().forEach(o -> {
Review obj;
try {
/* 参阅唯一 */
obj = this.getReviews().stream().filter(p -> StringUtils.equals(o.getJob(), p.getJob())
&& StringUtils.equals(o.getPerson(), p.getPerson())).findFirst().orElse(null);
if (null == obj) {
this.business.entityManagerContainer().persist(o, CheckPersistType.all);
} else {
// 如果逻辑上相同的已阅已经存在,覆盖内容.
o.copyTo(obj, JpaObject.FieldsUnmodify);
}
} catch (Exception e) {
logger.error(e);
}
});
}
private void commitReviewUpdatePart() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册