Просмотр исходного кода

代码格式调整,功能无问题

zhourui 5 лет назад
Родитель
Сommit
0eb3684bcd

+ 86 - 82
o2server/x_processplatform_assemble_designer/src/main/java/com/x/processplatform/assemble/designer/ProjectionExecuteQueue.java

@@ -1,16 +1,14 @@
 package com.x.processplatform.assemble.designer;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.StringUtils;
 
 import com.google.gson.JsonElement;
 import com.google.gson.reflect.TypeToken;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.entity.dataitem.DataItem;
 import com.x.base.core.entity.dataitem.DataItemConverter;
 import com.x.base.core.entity.dataitem.ItemCategory;
 import com.x.base.core.project.exception.ExceptionEntityNotExist;
@@ -35,7 +33,7 @@ public class ProjectionExecuteQueue extends AbstractQueue<String> {
 
 	private static Logger logger = LoggerFactory.getLogger(ProjectionExecuteQueue.class);
 
-	private DataItemConverter<Item> converter = new DataItemConverter<Item>(Item.class);
+	private DataItemConverter<Item> converter = new DataItemConverter<>(Item.class);
 
 	@Override
 	protected void execute(String id) throws Exception {
@@ -59,99 +57,105 @@ public class ProjectionExecuteQueue extends AbstractQueue<String> {
 
 	private void work(Business business, Process process, List<Projection> projections) throws Exception {
 		String sequence = "";
-		List<Work> os = new ArrayList<>();
-		Data data = null;
+		List<Work> os;
 		do {
 			os = business.entityManagerContainer().listEqualAndSequenceAfter(Work.class, Work.process_FIELDNAME,
 					process.getId(), 100, sequence);
 			if (!os.isEmpty()) {
-				business.entityManagerContainer().beginTransaction(Work.class);
-				business.entityManagerContainer().beginTransaction(Task.class);
-				business.entityManagerContainer().beginTransaction(TaskCompleted.class);
-				business.entityManagerContainer().beginTransaction(Read.class);
-				business.entityManagerContainer().beginTransaction(ReadCompleted.class);
-				business.entityManagerContainer().beginTransaction(Review.class);
-				for (Work o : os) {
-					sequence = o.getSequence();
-					data = this.data(business, o);
-					ProjectionFactory.projectionWork(projections, data, o);
-					for (Task task : business.entityManagerContainer().listEqualAndEqual(Task.class, Task.job_FIELDNAME,
-							o.getJob(), Task.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionTask(projections, data, task);
-					}
-					for (TaskCompleted taskCompleted : business.entityManagerContainer().listEqualAndEqual(
-							TaskCompleted.class, TaskCompleted.job_FIELDNAME, o.getJob(),
-							TaskCompleted.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionTaskCompleted(projections, data, taskCompleted);
-					}
-					for (Read read : business.entityManagerContainer().listEqualAndEqual(Read.class, Read.job_FIELDNAME,
-							o.getJob(), Read.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionRead(projections, data, read);
-					}
-					for (ReadCompleted readCompleted : business.entityManagerContainer().listEqualAndEqual(
-							ReadCompleted.class, ReadCompleted.job_FIELDNAME, o.getJob(),
-							ReadCompleted.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionReadCompleted(projections, data, readCompleted);
-					}
-					for (Review review : business.entityManagerContainer().listEqualAndEqual(Review.class,
-							Review.job_FIELDNAME, o.getJob(), Review.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionReview(projections, data, review);
-					}
-				}
-				business.entityManagerContainer().commit();
+				sequence = workProjection(business, projections, sequence, os);
 			}
 		} while (!os.isEmpty());
 	}
 
+	private String workProjection(Business business, List<Projection> projections, String sequence, List<Work> os)
+			throws Exception {
+		business.entityManagerContainer().beginTransaction(Work.class);
+		business.entityManagerContainer().beginTransaction(Task.class);
+		business.entityManagerContainer().beginTransaction(TaskCompleted.class);
+		business.entityManagerContainer().beginTransaction(Read.class);
+		business.entityManagerContainer().beginTransaction(ReadCompleted.class);
+		business.entityManagerContainer().beginTransaction(Review.class);
+		for (Work o : os) {
+			sequence = o.getSequence();
+			Data data = this.data(business, o);
+			ProjectionFactory.projectionWork(projections, data, o);
+			for (Task task : business.entityManagerContainer().listEqualAndEqual(Task.class, Task.job_FIELDNAME,
+					o.getJob(), Task.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionTask(projections, data, task);
+			}
+			for (TaskCompleted taskCompleted : business.entityManagerContainer().listEqualAndEqual(TaskCompleted.class,
+					TaskCompleted.job_FIELDNAME, o.getJob(), TaskCompleted.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionTaskCompleted(projections, data, taskCompleted);
+			}
+			for (Read read : business.entityManagerContainer().listEqualAndEqual(Read.class, Read.job_FIELDNAME,
+					o.getJob(), Read.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionRead(projections, data, read);
+			}
+			for (ReadCompleted readCompleted : business.entityManagerContainer().listEqualAndEqual(ReadCompleted.class,
+					ReadCompleted.job_FIELDNAME, o.getJob(), ReadCompleted.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionReadCompleted(projections, data, readCompleted);
+			}
+			for (Review review : business.entityManagerContainer().listEqualAndEqual(Review.class, Review.job_FIELDNAME,
+					o.getJob(), Review.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionReview(projections, data, review);
+			}
+		}
+		business.entityManagerContainer().commit();
+		return sequence;
+	}
+
 	private void workCompleted(Business business, Process process, List<Projection> projections) throws Exception {
 		String sequence = "";
-		List<WorkCompleted> os = new ArrayList<>();
-		Data data = null;
+		List<WorkCompleted> os;
 		do {
 			os = business.entityManagerContainer().listEqualAndSequenceAfter(WorkCompleted.class,
 					WorkCompleted.process_FIELDNAME, process.getId(), 100, sequence);
 			if (!os.isEmpty()) {
-				business.entityManagerContainer().beginTransaction(WorkCompleted.class);
-				business.entityManagerContainer().beginTransaction(Task.class);
-				business.entityManagerContainer().beginTransaction(TaskCompleted.class);
-				business.entityManagerContainer().beginTransaction(Read.class);
-				business.entityManagerContainer().beginTransaction(ReadCompleted.class);
-				business.entityManagerContainer().beginTransaction(Review.class);
-				for (WorkCompleted o : os) {
-					sequence = o.getSequence();
-					data = this.data(business, o);
-					ProjectionFactory.projectionWorkCompleted(projections, data, o);
-					for (Task task : business.entityManagerContainer().listEqualAndEqual(Task.class, Task.job_FIELDNAME,
-							o.getJob(), Task.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionTask(projections, data, task);
-					}
-					for (TaskCompleted taskCompleted : business.entityManagerContainer().listEqualAndEqual(
-							TaskCompleted.class, TaskCompleted.job_FIELDNAME, o.getJob(),
-							TaskCompleted.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionTaskCompleted(projections, data, taskCompleted);
-					}
-					for (Read read : business.entityManagerContainer().listEqualAndEqual(Read.class, Read.job_FIELDNAME,
-							o.getJob(), Read.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionRead(projections, data, read);
-					}
-					for (ReadCompleted readCompleted : business.entityManagerContainer().listEqualAndEqual(
-							ReadCompleted.class, ReadCompleted.job_FIELDNAME, o.getJob(),
-							ReadCompleted.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionReadCompleted(projections, data, readCompleted);
-					}
-					for (Review review : business.entityManagerContainer().listEqualAndEqual(Review.class,
-							Review.job_FIELDNAME, o.getJob(), Review.process_FIELDNAME, o.getProcess())) {
-						ProjectionFactory.projectionReview(projections, data, review);
-					}
-				}
-				business.entityManagerContainer().commit();
+				sequence = workCompletedProjection(business, projections, sequence, os);
 			}
 		} while (!os.isEmpty());
 	}
 
+	private String workCompletedProjection(Business business, List<Projection> projections, String sequence,
+			List<WorkCompleted> os) throws Exception {
+		business.entityManagerContainer().beginTransaction(WorkCompleted.class);
+		business.entityManagerContainer().beginTransaction(Task.class);
+		business.entityManagerContainer().beginTransaction(TaskCompleted.class);
+		business.entityManagerContainer().beginTransaction(Read.class);
+		business.entityManagerContainer().beginTransaction(ReadCompleted.class);
+		business.entityManagerContainer().beginTransaction(Review.class);
+		for (WorkCompleted o : os) {
+			sequence = o.getSequence();
+			Data data = this.data(business, o);
+			ProjectionFactory.projectionWorkCompleted(projections, data, o);
+			for (Task task : business.entityManagerContainer().listEqualAndEqual(Task.class, Task.job_FIELDNAME,
+					o.getJob(), Task.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionTask(projections, data, task);
+			}
+			for (TaskCompleted taskCompleted : business.entityManagerContainer().listEqualAndEqual(TaskCompleted.class,
+					TaskCompleted.job_FIELDNAME, o.getJob(), TaskCompleted.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionTaskCompleted(projections, data, taskCompleted);
+			}
+			for (Read read : business.entityManagerContainer().listEqualAndEqual(Read.class, Read.job_FIELDNAME,
+					o.getJob(), Read.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionRead(projections, data, read);
+			}
+			for (ReadCompleted readCompleted : business.entityManagerContainer().listEqualAndEqual(ReadCompleted.class,
+					ReadCompleted.job_FIELDNAME, o.getJob(), ReadCompleted.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionReadCompleted(projections, data, readCompleted);
+			}
+			for (Review review : business.entityManagerContainer().listEqualAndEqual(Review.class, Review.job_FIELDNAME,
+					o.getJob(), Review.process_FIELDNAME, o.getProcess())) {
+				ProjectionFactory.projectionReview(projections, data, review);
+			}
+		}
+		business.entityManagerContainer().commit();
+		return sequence;
+	}
+
 	private Data data(Business business, Work work) throws Exception {
-		List<Item> items = business.entityManagerContainer().listEqualAndEqual(Item.class, Item.bundle_FIELDNAME,
-				work.getJob(), Item.itemCategory_FIELDNAME, ItemCategory.pp);
+		List<Item> items = business.entityManagerContainer().listEqualAndEqual(Item.class, DataItem.bundle_FIELDNAME,
+				work.getJob(), DataItem.itemCategory_FIELDNAME, ItemCategory.pp);
 		if (items.isEmpty()) {
 			return new Data();
 		} else {
@@ -159,7 +163,7 @@ public class ProjectionExecuteQueue extends AbstractQueue<String> {
 			if (jsonElement.isJsonObject()) {
 				return XGsonBuilder.convert(jsonElement, Data.class);
 			} else {
-				/* 如果不是Object强制返回一个Map对象 */
+				// 如果不是Object强制返回一个Map对象
 				return new Data();
 			}
 		}
@@ -169,8 +173,8 @@ public class ProjectionExecuteQueue extends AbstractQueue<String> {
 		if (BooleanUtils.isTrue(workCompleted.getMerged())) {
 			return workCompleted.getProperties().getData();
 		}
-		List<Item> items = business.entityManagerContainer().listEqualAndEqual(Item.class, Item.bundle_FIELDNAME,
-				workCompleted.getJob(), Item.itemCategory_FIELDNAME, ItemCategory.pp);
+		List<Item> items = business.entityManagerContainer().listEqualAndEqual(Item.class, DataItem.bundle_FIELDNAME,
+				workCompleted.getJob(), DataItem.itemCategory_FIELDNAME, ItemCategory.pp);
 		if (items.isEmpty()) {
 			return new Data();
 		} else {
@@ -178,7 +182,7 @@ public class ProjectionExecuteQueue extends AbstractQueue<String> {
 			if (jsonElement.isJsonObject()) {
 				return XGsonBuilder.convert(jsonElement, Data.class);
 			} else {
-				/* 如果不是Object强制返回一个Map对象 */
+				// 如果不是Object强制返回一个Map对象
 				return new Data();
 			}
 		}

+ 45 - 41
o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/work/ActionProjection.java

@@ -24,6 +24,7 @@ import com.x.processplatform.core.entity.content.Work;
 import com.x.processplatform.core.entity.element.Process;
 import com.x.processplatform.core.entity.element.Projection;
 import com.x.processplatform.core.entity.element.util.ProjectionFactory;
+import com.x.processplatform.service.processing.Business;
 import com.x.processplatform.service.processing.WorkDataHelper;
 
 class ActionProjection extends BaseAction {
@@ -52,66 +53,69 @@ class ActionProjection extends BaseAction {
 			}
 
 			job = work.getJob();
-
 			data = new WorkDataHelper(emc, work).get();
-
 		}
 
-		Callable<ActionResult<Wo>> callable = new Callable<ActionResult<Wo>>() {
-			public ActionResult<Wo> call() throws Exception {
-				ActionResult<Wo> result = new ActionResult<>();
-				Wo wo = new Wo();
-				wo.setValue(false);
-				try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-					List<Projection> projections = listProjections(process);
-					if (ListTools.isNotEmpty(projections)) {
-						emc.beginTransaction(Work.class);
-						emc.beginTransaction(Task.class);
-						emc.beginTransaction(TaskCompleted.class);
-						emc.beginTransaction(Read.class);
-						emc.beginTransaction(ReadCompleted.class);
-						emc.beginTransaction(Review.class);
-						for (Work o : emc.listEqual(Work.class, Work.job_FIELDNAME, job)) {
-							ProjectionFactory.projectionWork(projections, data, o);
-						}
-						for (Task o : emc.listEqual(Task.class, Task.job_FIELDNAME, job)) {
-							ProjectionFactory.projectionTask(projections, data, o);
-						}
-						for (TaskCompleted o : emc.listEqual(TaskCompleted.class, TaskCompleted.job_FIELDNAME, job)) {
-							ProjectionFactory.projectionTaskCompleted(projections, data, o);
-						}
-						for (Read o : emc.listEqual(Read.class, Read.job_FIELDNAME, job)) {
-							ProjectionFactory.projectionRead(projections, data, o);
-						}
-						for (ReadCompleted o : emc.listEqual(ReadCompleted.class, ReadCompleted.job_FIELDNAME, job)) {
-							ProjectionFactory.projectionReadCompleted(projections, data, o);
-						}
-						for (Review o : emc.listEqual(Review.class, Review.job_FIELDNAME, job)) {
-							ProjectionFactory.projectionReview(projections, data, o);
-						}
-						emc.commit();
-						wo.setValue(true);
-					}
+		Callable<ActionResult<Wo>> callable = () -> {
+			ActionResult<Wo> result = new ActionResult<>();
+			Wo wo = new Wo();
+			wo.setValue(false);
+			try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+				List<Projection> projections = listProjections(process);
+				if (ListTools.isNotEmpty(projections)) {
+					projection(new Business(emc), job, data, projections);
+					wo.setValue(true);
 				}
-				result.setData(wo);
-				return result;
 			}
+			result.setData(wo);
+			return result;
 		};
 
 		return ProcessPlatformExecutorFactory.get(job).submit(callable).get();
 
 	}
 
+	private void projection(Business business, String job, Data data, List<Projection> projections) throws Exception {
+		EntityManagerContainer emc = business.entityManagerContainer();
+		emc.beginTransaction(Work.class);
+		emc.beginTransaction(Task.class);
+		emc.beginTransaction(TaskCompleted.class);
+		emc.beginTransaction(Read.class);
+		emc.beginTransaction(ReadCompleted.class);
+		emc.beginTransaction(Review.class);
+		for (Work o : emc.listEqual(Work.class, Work.job_FIELDNAME, job)) {
+			ProjectionFactory.projectionWork(projections, data, o);
+		}
+		for (Task o : emc.listEqual(Task.class, Task.job_FIELDNAME, job)) {
+			ProjectionFactory.projectionTask(projections, data, o);
+		}
+		for (TaskCompleted o : emc.listEqual(TaskCompleted.class, TaskCompleted.job_FIELDNAME, job)) {
+			ProjectionFactory.projectionTaskCompleted(projections, data, o);
+		}
+		for (Read o : emc.listEqual(Read.class, Read.job_FIELDNAME, job)) {
+			ProjectionFactory.projectionRead(projections, data, o);
+		}
+		for (ReadCompleted o : emc.listEqual(ReadCompleted.class, ReadCompleted.job_FIELDNAME, job)) {
+			ProjectionFactory.projectionReadCompleted(projections, data, o);
+		}
+		for (Review o : emc.listEqual(Review.class, Review.job_FIELDNAME, job)) {
+			ProjectionFactory.projectionReview(projections, data, o);
+		}
+		emc.commit();
+	}
+
 	private List<Projection> listProjections(Process process) {
+		List<Projection> list = new ArrayList<>();
 		String text = process.getProjection();
 		if (XGsonBuilder.isJsonArray(text)) {
-			return XGsonBuilder.instance().fromJson(text, new TypeToken<List<Projection>>() {
+			list = XGsonBuilder.instance().fromJson(text, new TypeToken<List<Projection>>() {
 			}.getType());
 		}
-		return new ArrayList<Projection>();
+		return list;
 	}
 
 	public static class Wo extends WrapBoolean {
+		private static final long serialVersionUID = -3206075665001702872L;
 	}
 
 }