From 2e843fd0aeff64aed2517dcedf7f92fcde41aeaf Mon Sep 17 00:00:00 2001 From: zhourui Date: Tue, 16 Jun 2020 10:47:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3retract=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../processing/jaxrs/work/V2Retract.java | 55 ++++++++++++++----- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/work/V2Retract.java b/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/work/V2Retract.java index 95d8baf884..b694b42424 100644 --- a/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/work/V2Retract.java +++ b/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/work/V2Retract.java @@ -30,6 +30,7 @@ import com.x.processplatform.core.entity.element.util.WorkLogTree.Node; import com.x.processplatform.core.entity.element.util.WorkLogTree.Nodes; import com.x.processplatform.core.express.service.processing.jaxrs.work.V2RetractWi; import com.x.processplatform.service.processing.Business; +import com.x.processplatform.service.processing.MessageFactory; import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; @@ -74,10 +75,12 @@ class V2Retract extends BaseAction { emc.beginTransaction(Work.class); emc.beginTransaction(Record.class); - deleteTasks(business, work.getJob(), activityTokens); - deleteTaskCompleteds(business, work.getJob(), activityTokens); - deleteReads(business, work.getJob(), activityTokens); - deleteReadCompleteds(business, work.getJob(), activityTokens); + List removeTasks = deleteTasks(business, work.getJob(), activityTokens); + List removeTaskCompleteds = deleteTaskCompleteds(business, work.getJob(), + activityTokens); + List removeReads = deleteReads(business, work.getJob(), activityTokens); + List removeReadCompleteds = deleteReadCompleteds(business, work.getJob(), + activityTokens); deleteRecords(business, work.getJob(), activityTokens); deleteWorkLogs(business, work.getJob(), activityTokens); @@ -100,13 +103,13 @@ class V2Retract extends BaseAction { update(work, workLog); - if (null != taskCompleted) { - taskCompleted.setProcessingType(TaskCompleted.PROCESSINGTYPE_RETRACT); - List manualTaskIdentityList = new ArrayList<>(); - manualTaskIdentityList.add(taskCompleted.getIdentity()); - work.setManualTaskIdentityList(manualTaskIdentityList); - } - + // 必然不为null + taskCompleted.setProcessingType(TaskCompleted.PROCESSINGTYPE_RETRACT); + List manualTaskIdentityList = new ArrayList<>(); + manualTaskIdentityList.add(taskCompleted.getIdentity()); + work.setManualTaskIdentityList(manualTaskIdentityList); + // 发送消息 + sendRemoveMessages(removeTasks, removeTaskCompleteds, removeReads, removeReadCompleteds); emc.commit(); } @@ -122,6 +125,22 @@ class V2Retract extends BaseAction { } + private void sendRemoveMessages(List removeTasks, List removeTaskCompleteds, + List removeReads, List removeReadCompleteds) throws Exception { + for (Task o : removeTasks) { + MessageFactory.task_delete(o); + } + for (TaskCompleted o : removeTaskCompleteds) { + MessageFactory.taskCompleted_delete(o); + } + for (Read o : removeReads) { + MessageFactory.read_delete(o); + } + for (ReadCompleted o : removeReadCompleteds) { + MessageFactory.readCompleted_delete(o); + } + } + private TaskCompleted getTaskCompleted(Business business, String taskCompletedId) throws Exception { TaskCompleted taskCompleted = business.entityManagerContainer().find(taskCompletedId, TaskCompleted.class); if (null == taskCompleted) { @@ -181,36 +200,42 @@ class V2Retract extends BaseAction { return ListTools.trim(list, true, true); } - private void deleteTasks(Business business, String job, List activityTokens) throws Exception { + private List deleteTasks(Business business, String job, List activityTokens) throws Exception { List os = business.entityManagerContainer().listEqualAndIn(Task.class, Task.job_FIELDNAME, job, Task.activityToken_FIELDNAME, activityTokens); for (Task o : os) { business.entityManagerContainer().remove(o, CheckRemoveType.all); } + return os; } - private void deleteTaskCompleteds(Business business, String job, List activityTokens) throws Exception { + private List deleteTaskCompleteds(Business business, String job, List activityTokens) + throws Exception { List os = business.entityManagerContainer().listEqualAndIn(TaskCompleted.class, TaskCompleted.job_FIELDNAME, job, TaskCompleted.activityToken_FIELDNAME, activityTokens); for (TaskCompleted o : os) { business.entityManagerContainer().remove(o, CheckRemoveType.all); } + return os; } - private void deleteReads(Business business, String job, List activityTokens) throws Exception { + private List deleteReads(Business business, String job, List activityTokens) throws Exception { List os = business.entityManagerContainer().listEqualAndIn(Read.class, Read.job_FIELDNAME, job, Read.activityToken_FIELDNAME, activityTokens); for (Read o : os) { business.entityManagerContainer().remove(o, CheckRemoveType.all); } + return os; } - private void deleteReadCompleteds(Business business, String job, List activityTokens) throws Exception { + private List deleteReadCompleteds(Business business, String job, List activityTokens) + throws Exception { List os = business.entityManagerContainer().listEqualAndIn(ReadCompleted.class, ReadCompleted.job_FIELDNAME, job, ReadCompleted.activityToken_FIELDNAME, activityTokens); for (ReadCompleted o : os) { business.entityManagerContainer().remove(o, CheckRemoveType.all); } + return os; } private void deleteRecords(Business business, String job, List activityTokens) throws Exception { -- GitLab