在泛微 E9 系统中,流程强制归档是用于强制将待办任务归档的操作。通常,这个过程通过调用 /api/workflow/monitor/archiving
接口并传输 multiRequestIds
参数来实现。然而,在实际开发中,我们有时需要通过 Java 代码手动触发归档过程,便于调试和自定义功能。
WfForceOver 类
WfForceOver
类是一个专门用于实现流程强制归档的类,它提供了两个关键方法:
- setRemark(String remark) :用于设置强制归档时的签字意见(备注)。
- doForceOver(List requestIds, User user) :用于执行强制归档操作,传入多个请求 ID 和当前用户。
1. setRemark 方法
该方法用于设置归档时的签字意见。如果未设置,默认会使用空字符串。
public void setRemark(String remark) {
this.remark = remark; // 设置归档的签字意见
}
2. doForceOver 方法
该方法执行强制归档操作,接受一组请求 ID 和当前用户对象。它会通过传入的请求 ID 列表来归档相关流程。
public void doForceOver(ArrayList requestids, User user) {
doForceOver(requestids, null, null, user);
}
还有一个doForceOver重载:
public void doForceOver(
ArrayList requestids,
HttpServletRequest request,
HttpServletResponse response) {
doForceOver(requestids, request, response, null);
}
示例代码
下面是一个简化版的代码示例,展示了如何使用 WfForceOver
类来进行流程强制归档操作:
// 获取当前用户
User user = HrmUserVarify.getUser(request, response);
if (user == null) {
response.sendRedirect("/login/Login.jsp");
return;
}
// 获取请求参数
String requestIds = request.getParameter("requestIds");
if (requestIds == null || requestIds.trim().isEmpty()) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
out.print("{\"status\":\"0\", \"message\":\"Missing requestIds parameter\"}");
return;
}
// 获取签字意见(如果有)
String remark = request.getParameter("remark") == null ? "" : request.getParameter("remark");
// 创建 WfForceOver 对象并设置签字意见
WfForceOver wfOver = new WfForceOver();
wfOver.setRemark(remark);
// 创建 requestIds 列表并调用 doForceOver 方法
List<String> requestIdsList = Arrays.asList(requestIds.split(","));
wfOver.doForceOver(requestIdsList, user);
// 返回操作结果
out.print("{\"status\":\"1\", \"result\":\"Archiving process triggered successfully.\"}");
总结
通过 WfForceOver
类的 setRemark
和 doForceOver
方法,我们可以轻松实现流程的强制归档操作。在实际应用中,您只需要传入请求 ID 列表和用户对象,即可完成归档。此外,可以通过 setRemark
方法为归档添加备注,以便后续查看和审计。
[Ecology E9 Java] 流程强制归档方法 by https://oneszhang.com/archives/124.html