diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionListWithWorkOrWorkCompleted.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionListWithWorkOrWorkCompleted.java index 819d5058a0e499bf601b9ecf064d9322d438ba74..33ec8c04c20f81053e1b1925743159cd0d1d707f 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionListWithWorkOrWorkCompleted.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionListWithWorkOrWorkCompleted.java @@ -22,8 +22,6 @@ import com.x.base.core.project.http.EffectivePerson; import com.x.base.core.project.logger.Logger; import com.x.base.core.project.logger.LoggerFactory; import com.x.processplatform.assemble.surface.Business; -import com.x.processplatform.assemble.surface.jaxrs.work.ActionGetWithWorkOrWorkCompleted.WoRead; -import com.x.processplatform.assemble.surface.jaxrs.work.ActionGetWithWorkOrWorkCompleted.WoTask; import com.x.processplatform.core.entity.content.Attachment; class ActionListWithWorkOrWorkCompleted extends BaseAction { @@ -36,45 +34,53 @@ class ActionListWithWorkOrWorkCompleted extends BaseAction { Business business = new Business(emc); - CompletableFuture _control = CompletableFuture.supplyAsync(() -> { - return business.readableWithWorkOrWorkCompleted(effectivePerson, workOrWorkCompleted, - new ExceptionEntityNotExist(workOrWorkCompleted)); - }); - CompletableFuture> _wos = CompletableFuture.supplyAsync(() -> { - List identities = business.organization().identity().listWithPerson(effectivePerson); - - List units = business.organization().unit().listWithPerson(effectivePerson); - - final String job = business.job().findWithWorkOrWorkCompleted(workOrWorkCompleted); - List wos = new ArrayList<>(); - - for (Attachment attachment : this.list(business, job)) { - Wo wo = Wo.copier.copy(attachment); - boolean canControl = this.control(attachment, effectivePerson, identities, units, business); - boolean canEdit = this.edit(attachment, effectivePerson, identities, units, business); - boolean canRead = this.read(attachment, effectivePerson, identities, units, business); - if (canRead) { - wo.getControl().setAllowRead(true); - wo.getControl().setAllowEdit(canEdit); - wo.getControl().setAllowControl(canControl); - wos.add(wo); + try { + List identities = business.organization().identity().listWithPerson(effectivePerson); + List units = business.organization().unit().listWithPerson(effectivePerson); + final String job = business.job().findWithWorkOrWorkCompleted(workOrWorkCompleted); + for (Attachment attachment : this.list(business, job)) { + Wo wo = Wo.copier.copy(attachment); + boolean canControl = this.control(attachment, effectivePerson, identities, units, business); + boolean canEdit = this.edit(attachment, effectivePerson, identities, units, business); + boolean canRead = this.read(attachment, effectivePerson, identities, units, business); + if (canRead) { + wo.getControl().setAllowRead(true); + wo.getControl().setAllowEdit(canEdit); + wo.getControl().setAllowControl(canControl); + wos.add(wo); + } } + wos = wos + .stream().sorted( + Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo)) + .thenComparing(Comparator.comparing(Wo::getCreateTime, + Comparator.nullsLast(Date::compareTo)))) + .collect(Collectors.toList()); + } catch (Exception e) { + logger.error(e); } - - wos = wos.stream() - .sorted(Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo)) - .thenComparing( - Comparator.comparing(Wo::getCreateTime, Comparator.nullsLast(Date::compareTo)))) - .collect(Collectors.toList()); return wos; }); + CompletableFuture _control = CompletableFuture.supplyAsync(() -> { + Boolean value = false; + try { + value = business.readableWithWorkOrWorkCompleted(effectivePerson, workOrWorkCompleted, + new ExceptionEntityNotExist(workOrWorkCompleted)); + } catch (Exception e) { + logger.error(e); + } + return value; + }); + if (BooleanUtils.isFalse(_control.get())) { throw new ExceptionAccessDenied(effectivePerson, workOrWorkCompleted); } + result.setData(_wos.get()); + return result; } }