ActionDelete.java 2.1 KB
Newer Older
R
roo00 已提交
1
package com.x.processplatform.service.processing.jaxrs.task;
caixiangyi's avatar
caixiangyi 已提交
2

R
update  
roo00 已提交
3 4
import java.util.concurrent.Callable;

caixiangyi's avatar
caixiangyi 已提交
5 6 7
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckRemoveType;
R
roo00 已提交
8
import com.x.base.core.project.exception.ExceptionEntityNotExist;
R
roo00 已提交
9
import com.x.base.core.project.executor.ProcessPlatformExecutorFactory;
caixiangyi's avatar
caixiangyi 已提交
10 11 12
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WoId;
R
roo00 已提交
13
import com.x.base.core.project.tools.ListTools;
R
roo00 已提交
14
import com.x.processplatform.core.entity.content.Task;
O
o2null 已提交
15
import com.x.processplatform.core.entity.content.Work;
R
roo00 已提交
16
import com.x.processplatform.service.processing.MessageFactory;
caixiangyi's avatar
caixiangyi 已提交
17 18 19

class ActionDelete extends BaseAction {

R
roo00 已提交
20
	ActionResult<Wo> execute(EffectivePerson effectivePerson, String id) throws Exception {
R
roo00 已提交
21 22

		String executorSeed = null;
caixiangyi's avatar
caixiangyi 已提交
23
		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
R
roo00 已提交
24 25 26

			Task task = emc.fetch(id, Task.class, ListTools.toList(Task.job_FIELDNAME));

R
roo00 已提交
27
			if (null == task) {
R
roo00 已提交
28
				throw new ExceptionEntityNotExist(id, Task.class);
caixiangyi's avatar
caixiangyi 已提交
29
			}
R
update  
roo00 已提交
30

R
roo00 已提交
31 32
			executorSeed = task.getJob();
		}
O
o2null 已提交
33 34 35 36 37 38 39
		Callable<ActionResult<Wo>> callable = () -> {
			ActionResult<Wo> result = new ActionResult<>();
			Wo wo = new Wo();
			try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
				Task task = emc.find(id, Task.class);
				if (null == task) {
					throw new ExceptionEntityNotExist(id, Task.class);
R
update  
roo00 已提交
40
				}
O
o2null 已提交
41 42 43 44 45 46 47 48 49 50 51 52 53
				Work work = emc.find(task.getWork(), Work.class);
				if (null == work) {
					throw new ExceptionEntityNotExist(task.getWork(), Work.class);
				}
				emc.beginTransaction(Task.class);
				emc.beginTransaction(Work.class);
				emc.remove(task, CheckRemoveType.all);
				work.getManualTaskIdentityList().remove(task.getIdentity());
				emc.commit();
				MessageFactory.task_delete(task);
				wo.setId(task.getId());
				result.setData(wo);
				return result;
R
roo00 已提交
54 55
			}
		};
R
update  
roo00 已提交
56

O
o2null 已提交
57
		return ProcessPlatformExecutorFactory.get(executorSeed).submit(callable).get();
R
update  
roo00 已提交
58

caixiangyi's avatar
caixiangyi 已提交
59 60 61 62
	}

	public static class Wo extends WoId {
	}
R
roo00 已提交
63

caixiangyi's avatar
caixiangyi 已提交
64
}