ActionDelete.java 1.8 KB
Newer Older
L
luojing 已提交
1 2 3 4 5 6 7 8 9 10 11 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 37 38 39 40 41 42 43 44 45 46 47 48
package com.x.organization.assemble.control.jaxrs.personcard;

import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckRemoveType;
import com.x.base.core.project.cache.ApplicationCache;
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.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.organization.assemble.control.Business;
import com.x.organization.assemble.control.message.OrgMessageFactory;
import com.x.organization.core.entity.PersonCard;

class ActionDelete extends BaseAction {
	private static Logger logger = LoggerFactory.getLogger(ActionDelete.class);
	ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag) throws Exception {
		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
			ActionResult<Wo> result = new ActionResult<>();
			Business business = new Business(emc);
			PersonCard personCard = business.personCard().pick(flag);
			if (null == personCard) {
				throw new ExceptionPersonCardNotExist(flag);
			}

			emc.beginTransaction(PersonCard.class);
			personCard = emc.find(personCard.getId(), PersonCard.class);
			emc.remove(personCard, CheckRemoveType.all);
			emc.commit();
			ApplicationCache.notify(PersonCard.class);
			
			/**创建 组织变更org消息通信 */
			OrgMessageFactory  orgMessageFactory = new OrgMessageFactory();
			orgMessageFactory.createMessageCommunicate("delete", "personCard", personCard, effectivePerson);
			
			Wo wo = new Wo();
			wo.setId(personCard.getId());
			result.setData(wo);
			return result;
		}
	}

	public static class Wo extends WoId {
	}


}