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