提交 bd6c80c0 编写于 作者: O o2null

Merge branch 'fix/updateAfterScript' into 'develop'

修改arriveAfterScript和inquireAfterScript

See merge request o2oa/o2oa!355
...@@ -94,8 +94,11 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor { ...@@ -94,8 +94,11 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor {
} }
aeiObjects.commit(); aeiObjects.commit();
this.arriveCommitted(aeiObjects); this.arriveCommitted(aeiObjects);
// 运行AfterArriveScript时间 // 运行AfterArriveScript事件
this.callAfterArriveScript(aeiObjects); if (this.callAfterArriveScript(aeiObjects) && aeiObjects.commitData()) {
// 执行AfterArriveScript中的代码可能修改了data数据.
aeiObjects.entityManagerContainer().commit();
}
return work.getId(); return work.getId();
} catch ( } catch (
...@@ -138,7 +141,7 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor { ...@@ -138,7 +141,7 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor {
} }
} }
private void callAfterArriveScript(AeiObjects aeiObjects) throws Exception { private boolean callAfterArriveScript(AeiObjects aeiObjects) throws Exception {
if (BooleanUtils.isTrue(aeiObjects.getActivityProcessingConfigurator().getCallAfterArriveScript()) if (BooleanUtils.isTrue(aeiObjects.getActivityProcessingConfigurator().getCallAfterArriveScript())
&& this.hasAfterArriveScript(aeiObjects.getProcess(), aeiObjects.getActivity())) { && this.hasAfterArriveScript(aeiObjects.getProcess(), aeiObjects.getActivity())) {
CompiledScript cs = null; CompiledScript cs = null;
...@@ -152,7 +155,9 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor { ...@@ -152,7 +155,9 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor {
aeiObjects.getActivity(), Business.EVENT_AFTERARRIVE); aeiObjects.getActivity(), Business.EVENT_AFTERARRIVE);
JsonScriptingExecutor.eval(cs, aeiObjects.scriptContext()); JsonScriptingExecutor.eval(cs, aeiObjects.scriptContext());
} }
return true;
} }
return false;
} }
private List<Read> concreteRead(AeiObjects aeiObjects) throws Exception { private List<Read> concreteRead(AeiObjects aeiObjects) throws Exception {
...@@ -213,14 +218,11 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor { ...@@ -213,14 +218,11 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor {
} }
} }
aeiObjects.commit(); aeiObjects.commit();
// 发送在队列中的待办消息, 待办消息必须在数据提交后发送,否则会不到待办
this.executeCommitted(aeiObjects, works); this.executeCommitted(aeiObjects, works);
/** 发送在队列中的待办消息, 待办消息必须在数据提交后发送,否则会不到待办 */ if (ListTools.isNotEmpty(works) && callAfterExecuteScript(aeiObjects) && aeiObjects.commitData()) {
if (ListTools.isNotEmpty(works)) { // 已经有返回的work将要离开当前环节,执行AfterExecuteScript中的代码可能修改了data数据.
/** 已经有返回的work将要离开当前环节,执行AfterExecuteScript中的代码 */ aeiObjects.entityManagerContainer().commit();
this.callAfterExecuteScript(aeiObjects);
if (aeiObjects.commitData()) {
aeiObjects.entityManagerContainer().commit();
}
} }
} catch (Exception e) { } catch (Exception e) {
LOGGER.error(e); LOGGER.error(e);
...@@ -245,7 +247,7 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor { ...@@ -245,7 +247,7 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor {
} }
} }
private void callAfterExecuteScript(AeiObjects aeiObjects) throws Exception { private boolean callAfterExecuteScript(AeiObjects aeiObjects) throws Exception {
if (BooleanUtils.isTrue(aeiObjects.getActivityProcessingConfigurator().getCallAfterExecuteScript()) if (BooleanUtils.isTrue(aeiObjects.getActivityProcessingConfigurator().getCallAfterExecuteScript())
&& this.hasAfterExecuteScript(aeiObjects.getProcess(), aeiObjects.getActivity())) { && this.hasAfterExecuteScript(aeiObjects.getProcess(), aeiObjects.getActivity())) {
CompiledScript cs = null; CompiledScript cs = null;
...@@ -259,7 +261,9 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor { ...@@ -259,7 +261,9 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor {
aeiObjects.getActivity(), Business.EVENT_AFTEREXECUTE); aeiObjects.getActivity(), Business.EVENT_AFTEREXECUTE);
JsonScriptingExecutor.eval(cs, aeiObjects.scriptContext()); JsonScriptingExecutor.eval(cs, aeiObjects.scriptContext());
} }
return true;
} }
return false;
} }
public List<String> inquire(String workId, ProcessingConfigurator processingConfigurator, public List<String> inquire(String workId, ProcessingConfigurator processingConfigurator,
...@@ -319,7 +323,10 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor { ...@@ -319,7 +323,10 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor {
aeiObjects.commit(); aeiObjects.commit();
this.inquireCommitted(aeiObjects); this.inquireCommitted(aeiObjects);
// 运行 AfterInquireScript事件 // 运行 AfterInquireScript事件
this.callAfterInquireScript(aeiObjects); if (this.callAfterInquireScript(aeiObjects) && aeiObjects.commitData()) {
// 执行AfterInquireScript中的代码可能修改了data数据.
aeiObjects.entityManagerContainer().commit();
}
} catch ( } catch (
Exception e) { Exception e) {
...@@ -345,7 +352,7 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor { ...@@ -345,7 +352,7 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor {
} }
} }
private void callAfterInquireScript(AeiObjects aeiObjects) throws Exception { private boolean callAfterInquireScript(AeiObjects aeiObjects) throws Exception {
if (BooleanUtils.isTrue(aeiObjects.getActivityProcessingConfigurator().getCallAfterInquireScript()) if (BooleanUtils.isTrue(aeiObjects.getActivityProcessingConfigurator().getCallAfterInquireScript())
&& this.hasAfterInquireScript(aeiObjects.getProcess(), aeiObjects.getActivity())) { && this.hasAfterInquireScript(aeiObjects.getProcess(), aeiObjects.getActivity())) {
CompiledScript cs = null; CompiledScript cs = null;
...@@ -359,7 +366,9 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor { ...@@ -359,7 +366,9 @@ public abstract class AbstractProcessor extends AbstractBaseProcessor {
aeiObjects.getActivity(), Business.EVENT_AFTERINQUIRE); aeiObjects.getActivity(), Business.EVENT_AFTERINQUIRE);
JsonScriptingExecutor.eval(cs, aeiObjects.scriptContext()); JsonScriptingExecutor.eval(cs, aeiObjects.scriptContext());
} }
return true;
} }
return false;
} }
protected abstract Work arriveProcessing(AeiObjects aeiObjects) throws Exception; protected abstract Work arriveProcessing(AeiObjects aeiObjects) throws Exception;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册