|
版本: |
X5.2.7 |
小版本号: |
|
|
|
数据库: |
Oracle |
服务器操作系统: |
Windows |
应用服务器: |
Tomcat |
客户端操作系统: |
Windows 其它 |
浏览器: |
Chrome |
|
|
需求:流程流转一步,更新主数据的状态:处理人、当前环节和状态
我的做法:
1.添加流程启动与流转事件
<model xmlns="http://www.justep.com/model">
<listener action="startProcessAction" event="after"
handler="orderProcessAfterStartProcedure" />
<procedure name="orderProcessAfterStartProcedure" code="OrderProcess.orderProcessAfterStart" />
<listener action="advanceProcessAction" event="after"
handler="orderProcessAfterAdvanceProcedure" />
<procedure name="orderProcessAfterAdvanceProcedure" code="OrderProcess.orderProcessAfterAdvance" />
</model>
2.添加代码
public static void updateBizRecord()
{
String sExecutorNames = "", sActivityNames = "", sStatus;
if (!ProcessUtils.isFlowToEnd())
{
ProcessControl flowControl = (ProcessControl) ContextHelper.getActionContext().getParameter("control");
for (ProcessControlItem to : flowControl.getFlowTos())
{
for (OrgUnit ect : to.getExecutors())
{
sExecutorNames = sExecutorNames + CommonUtils.getNameOfFile(ect.getFName()) + " ";
}
sActivityNames = to.getTask().getActivityName();
}
sStatus = "审批中";
}
else
{
sStatus = "已完成";
}
String key = ProcessUtils.getProcessData1();
String sConceptName = ProcessUtils.getProcessData2();
String sDataModel = ProcessUtils.getProcessData3();
String ksql = "update " + sConceptName + " a set a.fCLR='" + sExecutorNames + "',a.fCLHJ='" + sActivityNames
+ "',a.fDQZT='" + sStatus + "' where a='" + key + "'";
KSQL.executeUpdate(ksql, null, sDataModel, null);
}
}
3.问题
在流程结束的前一个环节,我将任务按照顺勋的模式流转到两个人,在sa_task 表中,我看到一个任务是 尚未处理,另一个任务是暂缓处理,此时,我以尚未处理 的用户登录进行流转,刘红钻后会执行代码:ProcessUtils.isFlowToEnd() 结果是流转结束!事实上是该用户的流程结束,而另一个用户的任务由暂缓状态变为 尚未处理,整个流程确实还没结束!
我如何来改这段代码,来记录流程的状态!请高人指点,谢谢
|
|