ActionDelete.java 1.9 KB
Newer Older
caixiangyi's avatar
caixiangyi 已提交
1 2 3 4 5
package com.x.organization.assemble.control.jaxrs.unitduty;

import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckRemoveType;
O
o2sword 已提交
6
import com.x.base.core.project.cache.CacheManager;
caixiangyi's avatar
caixiangyi 已提交
7 8 9 10
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WoId;
import com.x.organization.assemble.control.Business;
NoSubject's avatar
NoSubject 已提交
11
import com.x.organization.assemble.control.message.OrgMessageFactory;
caixiangyi's avatar
caixiangyi 已提交
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
import com.x.organization.core.entity.Unit;
import com.x.organization.core.entity.UnitDuty;

class ActionDelete extends BaseAction {

	ActionResult<Wo> execute(EffectivePerson effectivePerson, String id) throws Exception {
		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
			ActionResult<Wo> result = new ActionResult<>();
			Business business = new Business(emc);
			UnitDuty o = business.unitDuty().pick(id);
			if (null == o) {
				throw new ExceptionUnitDutyNotExist(id);
			}
			Unit unit = business.unit().pick(o.getUnit());
			if (null == unit) {
				throw new ExceptionUnitNotExist(o.getUnit());
			}
			if (!business.editable(effectivePerson, unit)) {
				throw new ExceptionDenyEditUnit(effectivePerson, unit.getName());
			}
			/** pick出来的需要重新取出 */
			emc.beginTransaction(UnitDuty.class);
			o = emc.find(o.getId(), UnitDuty.class);
			emc.remove(o, CheckRemoveType.all);
			emc.commit();
O
o2sword 已提交
37
			CacheManager.notify(UnitDuty.class);
NoSubject's avatar
NoSubject 已提交
38 39 40 41 42
			
			/**创建 组织变更org消息通信 */
			OrgMessageFactory  orgMessageFactory = new OrgMessageFactory();
			orgMessageFactory.createMessageCommunicate("add", "duty", o, effectivePerson);
			
caixiangyi's avatar
caixiangyi 已提交
43 44 45 46 47 48 49 50 51 52 53
			Wo wo = new Wo();
			wo.setId(o.getId());
			result.setData(wo);
			return result;
		}
	}

	public static class Wo extends WoId {
	}

}