From d450ffc1245223f06cc26c62d00d4ff3d216d8ba Mon Sep 17 00:00:00 2001 From: zhourui Date: Thu, 18 Jun 2020 17:55:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=87=8D=E4=B8=80=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E4=B8=AD=E5=A4=9A=E6=9D=A1=E5=BE=85=E9=98=85=E5=92=8C?= =?UTF-8?q?=E5=8F=82=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- o2server/configSample/person.json | 4 +- .../surface/jaxrs/work/ActionCreate.java | 2 - .../processing/processor/AeiObjects.java | 77 +++++++++++-------- 3 files changed, 47 insertions(+), 36 deletions(-) diff --git a/o2server/configSample/person.json b/o2server/configSample/person.json index 353462ae50..850eb15419 100644 --- a/o2server/configSample/person.json +++ b/o2server/configSample/person.json @@ -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 diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java index da23e76d21..9937a2f4df 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java @@ -1,6 +1,5 @@ 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; diff --git a/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/AeiObjects.java b/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/AeiObjects.java index b4cbf79af1..c12b2bb374 100644 --- a/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/AeiObjects.java +++ b/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/AeiObjects.java @@ -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() { -- GitLab