提交 69b92500 编写于 作者: Z zhourui

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

上级 db335ec1
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();
}
}
......
......@@ -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;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册