package com.customization.sendtodo; import com.engine.common.util.ParamUtil; import com.engine.core.cfg.annotation.CommandDynamicProxy; import com.engine.core.interceptor.AbstractCommandProxy; import com.engine.core.interceptor.Command; import com.engine.workflow.cmd.requestForm.RequestSubmitCmd; import com.engine.workflow.entity.requestForm.RequestOperationResultBean; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import java.util.Map; /*** * */ @CommandDynamicProxy(target = RequestSubmitCmd.class, desc="流程提交后给门户发送代办消息") public class SendPortalTodoCmd extends AbstractCommandProxy> { @Override public Map execute(Command> targetCommand) { //获取到被代理对象 RequestSubmitCmd requestSubmitCmd = (RequestSubmitCmd)targetCommand; //获取被代理对象的参数 //对参数做预处理 BaseBean bb = new BaseBean(); HttpServletRequest request = requestSubmitCmd.getRequest(); String requestid = Util.null2String(request.getParameter("requestid")).trim(); String workflowid = Util.null2String(request.getParameter("workflowid")).trim(); String src = Util.null2String(request.getParameter("src")).trim(); String nodeid = Util.null2String(request.getParameter("nodeid")); String workflowname = Util.null2String(request.getParameter("workflowname")); Map params = ParamUtil.request2Map(request); params.forEach((t,u)-> { System.out.println(t+"->>>"+u); }); for (Map.Entry entry : params.entrySet()) { System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } User user = requestSubmitCmd.getUser(); bb.writeLog("requestid:"+requestid); bb.writeLog("workflowid:"+workflowid); bb.writeLog("src:"+src); bb.writeLog("nodeid:"+nodeid); bb.writeLog("workflowname:"+workflowname); //参数回写 //执行标准的业务处理 Map result = nextExecute(targetCommand); //对返回值做加工处理 RequestOperationResultBean resultBean = (RequestOperationResultBean) result.get("data"); String executeResult = resultBean.getType().name(); if("SUCCESS".equals(executeResult)){ String new_requestid = Util.null2String(resultBean.getResultInfo().get("requestid")); bb.writeLog("new_requestid:"+new_requestid); SendPortalTodoRunnable sendPortalTodoRunnable = new SendPortalTodoRunnable(src,new_requestid,requestid,nodeid,user); new Thread(sendPortalTodoRunnable).start(); } return result; } }