提交 e1f5c162 编写于 作者: O o2null

Merge branch 'feature/trans' into 'wrdp'

删除人员时增加cache的通知

See merge request o2oa/o2oa!4420
...@@ -37,6 +37,7 @@ import com.x.organization.core.entity.*; ...@@ -37,6 +37,7 @@ import com.x.organization.core.entity.*;
class ActionDelete extends BaseAction { class ActionDelete extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionDelete.class); private static Logger logger = LoggerFactory.getLogger(ActionDelete.class);
ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag) throws Exception { ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag) throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
ActionResult<Wo> result = new ActionResult<>(); ActionResult<Wo> result = new ActionResult<>();
...@@ -90,12 +91,19 @@ class ActionDelete extends BaseAction { ...@@ -90,12 +91,19 @@ class ActionDelete extends BaseAction {
emc.remove(person, CheckRemoveType.all); emc.remove(person, CheckRemoveType.all);
emc.commit(); emc.commit();
CacheManager.notify(Person.class); CacheManager.notify(Person.class);
CacheManager.notify(Identity.class);
CacheManager.notify(Unit.class);
CacheManager.notify(UnitDuty.class);
CacheManager.notify(PersonAttribute.class);
CacheManager.notify(Custom.class);
CacheManager.notify(Group.class);
CacheManager.notify(Role.class);
/** 通知x_collect_service_transmit同步数据到collect */ /** 通知x_collect_service_transmit同步数据到collect */
business.instrument().collect().person(); business.instrument().collect().person();
/**创建 组织变更org消息通信 */ /** 创建 组织变更org消息通信 */
//createMessageCommunicate(person, effectivePerson); // createMessageCommunicate(person, effectivePerson);
OrgMessageFactory orgMessageFactory = new OrgMessageFactory(); OrgMessageFactory orgMessageFactory = new OrgMessageFactory();
orgMessageFactory.createMessageCommunicate("delete", "person", person, effectivePerson); orgMessageFactory.createMessageCommunicate("delete", "person", person, effectivePerson);
Wo wo = new Wo(); Wo wo = new Wo();
...@@ -127,7 +135,8 @@ class ActionDelete extends BaseAction { ...@@ -127,7 +135,8 @@ class ActionDelete extends BaseAction {
CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class); CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
Root<UnitDuty> root = cq.from(UnitDuty.class); Root<UnitDuty> root = cq.from(UnitDuty.class);
Predicate p = root.get(UnitDuty_.identityList).in(ids); Predicate p = root.get(UnitDuty_.identityList).in(ids);
List<UnitDuty> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList()); List<UnitDuty> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct()
.collect(Collectors.toList());
for (UnitDuty o : os) { for (UnitDuty o : os) {
o.getIdentityList().removeAll(ids); o.getIdentityList().removeAll(ids);
} }
...@@ -139,11 +148,13 @@ class ActionDelete extends BaseAction { ...@@ -139,11 +148,13 @@ class ActionDelete extends BaseAction {
CriteriaQuery<Unit> cq = cb.createQuery(Unit.class); CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
Root<Unit> root = cq.from(Unit.class); Root<Unit> root = cq.from(Unit.class);
Predicate p = cb.isMember(person.getId(), root.get(Unit_.controllerList)); Predicate p = cb.isMember(person.getId(), root.get(Unit_.controllerList));
//p = cb.or(cb.isMember(person.getId(), root.get(Unit_.inheritedControllerList))); // p = cb.or(cb.isMember(person.getId(),
List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList()); // root.get(Unit_.inheritedControllerList)));
List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct()
.collect(Collectors.toList());
for (Unit o : os) { for (Unit o : os) {
o.getControllerList().remove(person.getId()); o.getControllerList().remove(person.getId());
//o.getInheritedControllerList().remove(person.getId()); // o.getInheritedControllerList().remove(person.getId());
} }
} }
...@@ -153,7 +164,8 @@ class ActionDelete extends BaseAction { ...@@ -153,7 +164,8 @@ class ActionDelete extends BaseAction {
CriteriaQuery<Person> cq = cb.createQuery(Person.class); CriteriaQuery<Person> cq = cb.createQuery(Person.class);
Root<Person> root = cq.from(Person.class); Root<Person> root = cq.from(Person.class);
Predicate p = cb.isMember(person.getId(), root.get(Person_.controllerList)); Predicate p = cb.isMember(person.getId(), root.get(Person_.controllerList));
List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList()); List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct()
.collect(Collectors.toList());
for (Person o : os) { for (Person o : os) {
o.getControllerList().remove(person.getId()); o.getControllerList().remove(person.getId());
} }
...@@ -220,9 +232,9 @@ class ActionDelete extends BaseAction { ...@@ -220,9 +232,9 @@ class ActionDelete extends BaseAction {
} }
} }
/**创建 组织变更org消息通信 */ /** 创建 组织变更org消息通信 */
private boolean createMessageCommunicate(Person person, EffectivePerson effectivePerson) { private boolean createMessageCommunicate(Person person, EffectivePerson effectivePerson) {
try{ try {
Gson gson = new Gson(); Gson gson = new Gson();
String strPerson = gson.toJson(person); String strPerson = gson.toJson(person);
OrgMessage orgMessage = new OrgMessage(); OrgMessage orgMessage = new OrgMessage();
...@@ -237,23 +249,24 @@ class ActionDelete extends BaseAction { ...@@ -237,23 +249,24 @@ class ActionDelete extends BaseAction {
OrgBodyMessage orgBodyMessage = new OrgBodyMessage(); OrgBodyMessage orgBodyMessage = new OrgBodyMessage();
orgBodyMessage.setOriginalData(strPerson); orgBodyMessage.setOriginalData(strPerson);
orgMessage.setBody( gson.toJson(orgBodyMessage)); orgMessage.setBody(gson.toJson(orgBodyMessage));
Applications applications = new Applications(); Applications applications = new Applications();
String path ="org/create"; String path = "org/create";
//String address = "http://127.0.0.1:20020/x_message_assemble_communicate/jaxrs/org/create"; // String address =
//ActionResponse resp = CipherConnectionAction.post(false, address, body); // "http://127.0.0.1:20020/x_message_assemble_communicate/jaxrs/org/create";
// ActionResponse resp = CipherConnectionAction.post(false, address, body);
ActionResponse resp = ThisApplication.context().applications() ActionResponse resp = ThisApplication.context().applications()
.postQuery(x_message_assemble_communicate.class, path, orgMessage); .postQuery(x_message_assemble_communicate.class, path, orgMessage);
String mess = resp.getMessage(); String mess = resp.getMessage();
String data = resp.getData().toString(); String data = resp.getData().toString();
return true; return true;
}catch(Exception e) { } catch (Exception e) {
logger.print(e.toString()); logger.print(e.toString());
return false; return false;
} }
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册