actionHandleMethod) {
}
/**
* action 提交流程业务处理方法
* 具体业务逻辑实现
* 全局存在log成员变量,用于日志的输出 Util.actionFailException(requestManager,"error msg"); 用于提示action执行失败
*
*
* @param requestId 流程请求ID
* @param billTable 流程对应主表名称
* @param workflowId 流程对应流程ID
* @param user 当前节点操作者用户
* @param requestInfo 请求管理对象
*/
public abstract void doSubmit(String requestId, String billTable, int workflowId,
User user, RequestInfo requestInfo);
/**
* action 退回流程业务处理方法
* 具体业务逻辑实现
* 全局存在log成员变量,用于日志的输出 Util.actionFailException(requestManager,"error msg"); 用于提示action执行失败
*
*
* @param requestId 流程请求ID
* @param billTable 流程对应主表名称
* @param workflowId 流程对应流程ID
* @param user 当前节点操作者用户
* @param requestInfo 请求管理对象
*/
public void doReject(String requestId, String billTable, int workflowId,
User user, RequestInfo requestInfo) {
}
/**
* action 撤回、撤回流程流程业务处理方法
* 具体业务逻辑实现
* 全局存在log成员变量,用于日志的输出 Util.actionFailException(requestManager,"error msg"); 用于提示action执行失败
*
*
* @param requestId 流程请求ID
* @param billTable 流程对应主表名称
* @param workflowId 流程对应流程ID
* @param user 当前节点操作者用户
* @param requestInfo 请求管理对象
*/
public void doWithdraw(String requestId, String billTable, int workflowId,
User user, RequestInfo requestInfo) {
}
/**
* action 强制收回流程业务处理方法
* 具体业务逻辑实现
* 全局存在log成员变量,用于日志的输出 Util.actionFailException(requestManager,"error msg"); 用于提示action执行失败
*
*
* @param requestId 流程请求ID
* @param billTable 流程对应主表名称
* @param workflowId 流程对应流程ID
* @param user 当前节点操作者用户
* @param requestInfo 请求管理对象
*/
public void doDrawBack(String requestId, String billTable, int workflowId,
User user, RequestInfo requestInfo) {
}
/**
* 获取流程主表数据
*
* @return 流程主表数据
*/
protected Map getMainTableValue(RequestInfo requestInfo) {
// 获取主表数据
Property[] propertyArr = requestInfo.getMainTableInfo().getProperty();
Map result = getStringMap(propertyArr);
RequestManager requestManager = requestInfo.getRequestManager();
String billTable = requestManager.getBillTableName();
String id = mapper.selectIdByRequest(billTable, requestInfo.getRequestid());
result.put("id", id);
return result;
}
@NotNull
private Map getStringMap(Property[] propertyArr) {
if (null == propertyArr) {
return Collections.emptyMap();
}
Map mainTable = new HashMap<>((int) Math.ceil(propertyArr.length * 1.4));
for (Property property : propertyArr) {
String fieldName = property.getName();
String value = property.getValue();
mainTable.put(fieldName, value);
}
return mainTable;
}
/**
* 获取流程主表数据
*
* @return 流程主表数据
*/
protected Map getObjMainTableValue(RequestInfo requestInfo) {
Map mainTableValue = getMainTableValue(requestInfo);
return new HashMap<>(mainTableValue);
}
/**
* 获取所有明细数据
*
* @return 以明细表需要为键,以明细表数据为值的键值对明细数据信息
*/
protected Map>> getDetailTableValue(RequestInfo requestInfo) {
DetailTable[] detailTableArr = requestInfo.getDetailTableInfo().getDetailTable();
return getListMap(detailTableArr);
}
/**
* 获取所有明细数据
*
* @return 以明细表需要为键,以明细表数据为值的键值对明细数据信息
*/
protected Map>> getDetailTableObjValue(RequestInfo requestInfo) {
DetailTable[] detailTableArr = requestInfo.getDetailTableInfo().getDetailTable();
Map>> listMap = getListMap(detailTableArr);
Map>> result = new HashMap<>(listMap.size());
for (Map.Entry>> entry : listMap.entrySet()) {
List