diff --git a/src/com/customization/dito/monitor/SendPortalMonitorArchivedCmd.java b/src/com/customization/dito/monitor/SendPortalMonitorArchivedCmd.java deleted file mode 100644 index 19540ce9..00000000 --- a/src/com/customization/dito/monitor/SendPortalMonitorArchivedCmd.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.customization.dito.monitor; - -import com.constant.Constants; -import com.engine.core.cfg.annotation.CommandDynamicProxy; -import com.engine.core.interceptor.AbstractCommandProxy; -import com.engine.core.interceptor.Command; -import com.engine.workflow.cmd.monitor.DoArchivingCmd; -import com.engine.workflow.cmd.requestForm.RequestSubmitCmd; -import com.engine.workflow.entity.requestForm.RequestOperationResultBean; -import redis.clients.jedis.Jedis; -import weaver.general.BaseBean; -import weaver.general.Util; -import weaver.hrm.User; -import weaver.interfaces.dito.comInfo.PropBean; -import weaver.interfaces.dito.util.RedisTools; - -import javax.servlet.http.HttpServletRequest; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/*** - * - */ -@CommandDynamicProxy(target = DoArchivingCmd.class, desc="流程监控强制归档推送门户") -public class SendPortalMonitorArchivedCmd extends AbstractCommandProxy> { - - @Override - public Map execute(Command> targetCommand) { - //获取到被代理对象 - DoArchivingCmd doArchivingCmd = (DoArchivingCmd)targetCommand; - //获取被代理对象的参数 - //对参数做预处理 - - BaseBean bb = new BaseBean(); - bb.writeLog("SendPortalMonitorArchivedCmd:"); - HttpServletRequest request = doArchivingCmd.getRequest(); - String multiRequestIds = Util.null2String(request.getParameter("multiRequestIds")).trim(); - bb.writeLog("multiRequestIds:"+multiRequestIds); - //参数回写 - //执行标准的业务处理 - Map result = nextExecute(targetCommand); - Iterator> iterator2 = result.entrySet().iterator(); - while (iterator2.hasNext()) { - Map.Entry item = (Map.Entry) iterator2.next(); - String key = item.getKey(); - String value = Util.null2String(item.getValue()); - bb.writeLog("SendPortalMonitorDeleteCmd2:"+key +"----"+value); - } - return result; - } - -} - - diff --git a/src/com/customization/dito/monitor/SendPortalMonitorDeleteCmd.java b/src/com/customization/dito/monitor/SendPortalMonitorDeleteCmd.java deleted file mode 100644 index 7b66c404..00000000 --- a/src/com/customization/dito/monitor/SendPortalMonitorDeleteCmd.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.customization.dito.monitor; - -import com.engine.core.cfg.annotation.CommandDynamicProxy; -import com.engine.core.interceptor.AbstractCommandProxy; -import com.engine.core.interceptor.Command; -import weaver.general.BaseBean; -import weaver.general.Util; - -import java.util.Iterator; -import java.util.Map; -import com.engine.workflow.cmd.monitor.DoDeleteCmd; - - -/*** - * - */ -@CommandDynamicProxy(target = DoDeleteCmd.class, desc="流程监控删除推送门户") -public class SendPortalMonitorDeleteCmd extends AbstractCommandProxy> { - - @Override - public Map execute(Command> targetCommand) { - //获取到被代理对象 - DoDeleteCmd doDeleteCmd = (DoDeleteCmd)targetCommand; - //获取被代理对象的参数 - //对参数做预处理 - BaseBean bb = new BaseBean(); - bb.writeLog("SendPortalMonitorDeleteCmd"); - Map paramMap = doDeleteCmd.getParams(); - - Iterator> iterator1 = paramMap.entrySet().iterator(); - while (iterator1.hasNext()) { - Map.Entry item = (Map.Entry) iterator1.next(); - String key = item.getKey(); - String value = Util.null2String(item.getValue()); - bb.writeLog("SendPortalMonitorDeleteCmd1:"+key +"----"+value); - } - - String requestid = Util.null2String(paramMap.get("multiRequestIds")).trim(); - bb.writeLog("SendPortalMonitorDeleteCmd-requestid:"+requestid); - - //参数回写 - //执行标准的业务处理 - Map result = nextExecute(targetCommand); - //对返回值做加工处理 - - Iterator> iterator2 = result.entrySet().iterator(); - while (iterator2.hasNext()) { - Map.Entry item = (Map.Entry) iterator2.next(); - String key = item.getKey(); - String value = Util.null2String(item.getValue()); - bb.writeLog("SendPortalMonitorDeleteCmd2:"+key +"----"+value); - } - - return result; - } - -} - - diff --git a/src/com/customization/dito/monitor/SendPortalMonitorInterventionCmd.java b/src/com/customization/dito/monitor/SendPortalMonitorInterventionCmd.java new file mode 100644 index 00000000..4465a5b0 --- /dev/null +++ b/src/com/customization/dito/monitor/SendPortalMonitorInterventionCmd.java @@ -0,0 +1,69 @@ +package com.customization.dito.monitor; + +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 weaver.interfaces.dito.monitor.SendPortalMonitorUtil; +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + +/*** + * + */ +@CommandDynamicProxy(target = RequestSubmitCmd.class, desc="流程监控流程干预推送门户") +public class SendPortalMonitorInterventionCmd 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")); + + + User user = requestSubmitCmd.getUser(); + String userid = user.getUID()+""; + 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); + + if(Util.getIntValue(requestid)> 0 && "intervenor".equals(src)){ + SendPortalMonitorUtil sendPortalMonitorUtil = new SendPortalMonitorUtil(); + sendPortalMonitorUtil.monitorIntervention(requestid,userid); + } + + } + return result; + } + +} + + diff --git a/src/com/engine/workflow/web/RequestMonitorListAction.java b/src/com/engine/workflow/web/RequestMonitorListAction.java new file mode 100644 index 00000000..59ce9759 --- /dev/null +++ b/src/com/engine/workflow/web/RequestMonitorListAction.java @@ -0,0 +1,496 @@ +package com.engine.workflow.web; + +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +import com.engine.common.util.ParamUtil; +import com.engine.workflow.service.impl.RequestMonitorListServiceImpl; +import org.apache.commons.lang3.StringUtils; +import weaver.filter.WeaverRequest; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import com.alibaba.fastjson.JSONObject; +import com.engine.workflow.service.RequestMonitorListService; +import com.engine.common.util.ServiceUtil; + +/** + * 流程监控入口(action) + * @author luosy 2017/11/13. + * @version 1.1 + */ +public class RequestMonitorListAction { + + +// private RequestMonitorListService monitorService = (RequestMonitorListServiceImpl)ServiceUtil.getService(RequestMonitorListServiceImpl.class); + private RequestMonitorListService monitorService = null; + + private void setService(User user){ + monitorService = (RequestMonitorListServiceImpl)ServiceUtil.getService(RequestMonitorListServiceImpl.class,user); + } + + /** + * 高级查询信息 + * @param request + * @param response + * @return + */ + @POST + @Path("/getConditionInfo") + @Produces(MediaType.TEXT_PLAIN) + public String getConditionInfo(@Context HttpServletRequest request,@Context HttpServletResponse response){ + + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + //新表数据初始化 + monitorService.monitorInitData(ParamUtil.request2Map(request), user); + apidatas = monitorService.getConditionInfo(request,user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 高级查询列表 + * @param request + * @param response + * @return + */ + @POST + @Path("/getSessionkey") + @Produces(MediaType.TEXT_PLAIN) + public String getSessionkey(@Context HttpServletRequest request,@Context HttpServletResponse response){ + + Map apidatas = new HashMap(); + try{ + WeaverRequest weaverRequest = new WeaverRequest(request); + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.getSessionkey(weaverRequest,user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 列表总数 + * @param request + * @param response + * @return + */ + @POST + @Path("/getTotal") + @Produces(MediaType.TEXT_PLAIN) + public String getTotal(@Context HttpServletRequest request,@Context HttpServletResponse response){ + + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.getTotal(request,user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 高级查询左侧树 + * @param request + * @param response + * @return + */ + @POST + @Path("/getTree") + @Produces(MediaType.TEXT_PLAIN) + public String getTree(@Context HttpServletRequest request,@Context HttpServletResponse response){ + + Map apidatas = new HashMap(); + WeaverRequest weaverRequest = new WeaverRequest(request); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.getTree(weaverRequest,user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + /** + * 删除流程 + * @param request + * @param response + * @return + */ + @POST + @Path("/delete") + @Produces(MediaType.TEXT_PLAIN) + public String deleteRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.deleteRequestById(request, user); + + + BaseBean bb = new BaseBean(); + try{ + String requestid = Util.null2String(request.getParameter("multiRequestIds")); + String userid = user.getUID()+"" ; + bb.writeLog("deleteRequestById-requestid"+requestid); + bb.writeLog("deleteRequestById-userid"+userid); + + if(StringUtils.isNotEmpty(requestid)){ + String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ; + String methodName = "monitorDelete" ; + Class clazz = Class.forName(className); + if(clazz.getMethod(methodName,String.class) != null) { + Method method = clazz.getMethod(methodName, String.class,String.class); + Object newInstance = clazz.newInstance(); + method.invoke(newInstance,requestid,userid); + } + } + }catch (ClassNotFoundException | NoSuchMethodException e){ + e.printStackTrace(); + bb.writeLog("deleteRequestById-ClassNotFoundException"+e); + } + + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + /** + * 流程强制归档 + * @param request + * @param response + * @return + */ + @POST + @Path("/archiving") + @Produces(MediaType.TEXT_PLAIN) + public String archivingRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.archivingRequestById(request, response, user); + + BaseBean bb = new BaseBean(); + try{ + String requestid = Util.null2String(request.getParameter("multiRequestIds")); + String userid = user.getUID()+"" ; + bb.writeLog("deleteRequestById-requestid"+requestid); + bb.writeLog("deleteRequestById-userid"+userid); + + if(StringUtils.isNotEmpty(requestid)){ + String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ; + String methodName = "monitorArchived" ; + Class clazz = Class.forName(className); + if(clazz.getMethod(methodName,String.class) != null) { + Method method = clazz.getMethod(methodName, String.class,String.class); + Object newInstance = clazz.newInstance(); + method.invoke(newInstance,requestid,userid); + } + } + }catch (ClassNotFoundException | NoSuchMethodException e){ + e.printStackTrace(); + bb.writeLog("deleteRequestById-ClassNotFoundException"+e); + } + + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + + /** + * 流程暂停 + * @param request + * @param response + * @return + */ + @POST + @Path("/stop") + @Produces(MediaType.TEXT_PLAIN) + public String stopRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.stopRequestById(request, user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + /** + * 流程启用 + * @param request + * @param response + * @return + */ + @POST + @Path("/open") + @Produces(MediaType.TEXT_PLAIN) + public String openRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.openRequestById(request, user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + /** + * 流程撤销 + * @param request + * @param response + * @return + */ + @POST + @Path("/cancel") + @Produces(MediaType.TEXT_PLAIN) + public String cancelRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.cancelRequestById(request, user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + /** + * 流程强制收回 + * @param request + * @param response + * @return + */ + @POST + @Path("/repossessed") + @Produces(MediaType.TEXT_PLAIN) + public String repossessedRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.repossessedRequestById(request, response, user); + + + BaseBean bb = new BaseBean(); + try{ + String requestid = Util.null2String(request.getParameter("multiRequestIds")); + String userid = user.getUID()+"" ; + bb.writeLog("deleteRequestById-requestid"+requestid); + bb.writeLog("deleteRequestById-userid"+userid); + + if(StringUtils.isNotEmpty(requestid)){ + String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ; + String methodName = "monitorPossessed" ; + Class clazz = Class.forName(className); + if(clazz.getMethod(methodName,String.class) != null) { + Method method = clazz.getMethod(methodName, String.class,String.class); + Object newInstance = clazz.newInstance(); + method.invoke(newInstance,requestid,userid); + } + } + }catch (ClassNotFoundException | NoSuchMethodException e){ + e.printStackTrace(); + bb.writeLog("deleteRequestById-ClassNotFoundException"+e); + } + + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + /** + * 流程干预信息,需要传入一个requestid + * @param request + * @param response + * @return + */ + @POST + @Path("/intervention") + @Produces(MediaType.TEXT_PLAIN) + public String interventionRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.interventionRequestById(request, user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + /** + * 高级查询日志列表(sessionkey) + * @param request + * @param response + * @return + */ + @POST + @Path("/getLogSessionkey") + @Produces(MediaType.TEXT_PLAIN) + public String getLogSessionkey(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.getLogSessionkey(request,user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + /** + * 高级查询日志信息 + * @param request + * @param response + * @return + */ + @POST + @Path("/getLogConditionInfo") + @Produces(MediaType.TEXT_PLAIN) + public String getLogConditionInfo(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.getLogConditionInfo(user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + /** + * 高级查询日志信息 + * @param request + * @param response + * @return + */ + @POST + @Path("/getUsers") + @Produces(MediaType.TEXT_PLAIN) + public String getUsers(@Context HttpServletRequest request,@Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码 + String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码 + user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码 + setService(user); + apidatas = monitorService.getUsersByNodeid(request, user); + }catch(Exception e){ + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + +} diff --git a/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java b/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java new file mode 100644 index 00000000..be5bf0a2 --- /dev/null +++ b/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java @@ -0,0 +1,671 @@ +package weaver.interfaces.dito.monitor; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.constant.Constants; +import com.customization.dito.sendtodo.HttpRequestUtil; +import com.customization.dito.sendtodo.SendPortalErrorUtil; +import com.time.util.DateUtil; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.dito.comInfo.PropBean; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.Map; + +/*** + * + */ +public class SendPortalMonitorUtil { + + /*** + * 流程删除 + * @param requestid + * @param userid + */ + public void monitorDelete(String requestid,String userid){ + + String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorDelete" ; + + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + JSONObject requestObject = new JSONObject(); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog("SendPortalMonitorUtil--monitorDelete"); + String terminal = "1" ; + String taskType = "0"; + String actionType = "3" ; + try { + + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String urlPc = "[newtab]"+Constants.bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = Constants.bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+Constants.bpm_app_requesturl+requestid; + String urlApp = replace+Constants.bpm_app_requesturl+requestid; + + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + bb.writeLog("monitorDelete-urlDing", urlDing); + + + String requestname = "" ; + String workflowname = "" ; + String nodeId = "" ; + String nodeName = "" ; + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; + + bb.writeLog("monitorDelete--sql2:"+sql); + + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + nodeId = Util.null2String(rs.getString("nodeid")) ; + nodeName = Util.null2String(rs.getString("nodeName")) ; + } + + requestObject.put("center",Constants.center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",nodeName); + requestObject.put("ticketType",workflowname); + + String auth = Constants.username + ":" + Constants.passwd; + bb.writeLog("monitorDelete---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("monitorDelete---msgdata:"+msgdata); + Map map = new HashMap<>(); + if(!"".equals(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if(msgObject.containsKey("resultCode")){ + String resultCode = msgObject.getString("resultCode"); + + if("0".equals(resultCode)){ + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + + againMonitorDelete(requestid,userid,3); + + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /*** + * + * @param requestid + * @param second + */ + public void againMonitorDelete(String requestid,String userid,int second){ + String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.againMonitorDelete" ; + try { + if(second > 0){ + Thread.sleep(second); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + JSONObject requestObject = new JSONObject(); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog("SendPortalMonitorUtil--againMonitorDelete"); + String terminal = "1" ; + String taskType = "0"; + String actionType = "3" ; + try { + + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String urlPc = "[newtab]"+Constants.bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = Constants.bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+Constants.bpm_app_requesturl+requestid; + String urlApp = replace+Constants.bpm_app_requesturl+requestid; + + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + bb.writeLog("againMonitorDelete-urlDing", urlDing); + + String requestname = "" ; + String workflowname = "" ; + String nodeId = "" ; + String nodeName = "" ; + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; + + bb.writeLog("againMonitorDelete--sql2:"+sql); + + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + nodeId = Util.null2String(rs.getString("nodeid")) ; + nodeName = Util.null2String(rs.getString("nodeName")) ; + } + + requestObject.put("center",Constants.center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",nodeName); + requestObject.put("ticketType",workflowname); + + String auth = Constants.username + ":" + Constants.passwd; + bb.writeLog("againMonitorDelete---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("againMonitorDelete-msgdata:"+msgdata); + Map map = new HashMap<>(); + if(!"".equals(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if(msgObject.containsKey("resultCode")){ + String resultCode = msgObject.getString("resultCode"); + if("0".equals(resultCode)){ + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /*** + * 流程强制归档 + */ + public void monitorArchived(String requestid,String userid){ + String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorArchived" ; + + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + JSONObject requestObject = new JSONObject(); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog("SendPortalMonitorUtil--monitorArchived"); + String terminal = "1" ; + String taskType = "0"; + String actionType = "2" ; + try { + + String cus_staff = PropBean.getUfPropValue("cus_staff") ; + String scopeid = "-1"; + String scope = "HrmCustomFieldByInfoType" ; + + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String urlPc = "[newtab]"+Constants.bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = Constants.bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+Constants.bpm_app_requesturl+requestid; + String urlApp = replace+Constants.bpm_app_requesturl+requestid; + + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + bb.writeLog("monitorArchived-urlDing", urlDing); + + int count = 0 ; + String countSql =" select t2.userid \n" + + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','8','9','7','11')) \n" + + " and t2.islasttimes = 1\n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid ; + + bb.writeLog("monitorArchived--countSql:"+countSql); + rs.executeQuery(countSql); + while (rs.next()){ + count++; + } + bb.writeLog("monitorArchived--count:"+count); + if(count >0){ + + String requestname = "" ; + String workflowname = "" ; + String nodeId = "" ; + String nodeName = "" ; + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; + + bb.writeLog("monitorArchived--sql2:"+sql); + + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + nodeId = Util.null2String(rs.getString("nodeid")) ; + nodeName = Util.null2String(rs.getString("nodeName")) ; + } + requestObject.put("center",Constants.center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",nodeName); + requestObject.put("ticketType",workflowname); + + JSONArray taskObjectList = new JSONArray(); + + sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+ + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+ + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + + " left join workflow_nodebase d1 on d1.id = t2.nodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','8','9','7','11')) \n" + + " and t2.islasttimes = 1 \n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid ; + + rs.executeQuery(sql); + while (rs.next()) { + //归档节点抄送 + String creator = rs.getString("loginid"); + bb.writeLog("monitorArchived:"+requestid+" creator:"+creator); + if ("sysadmin".equals(creator)) { + creator = "Admin"; + } + + JSONObject taskObject = new JSONObject(); + taskObject.put("objectAction", "0"); + taskObject.put("objectType", "0"); + taskObject.put("objectCode", creator); + taskObject.put("objectId", rs.getString("staffid")); + taskObject.put("operatorCode", creator); + taskObjectList.add(taskObject); + } + + requestObject.put("taskObjectList",taskObjectList); + String auth = Constants.username + ":" + Constants.passwd; + bb.writeLog("monitorArchived---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl,requestObject.toJSONString(),auth); + + if (!"".equals(msgdata)) { + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if (msgObject.containsKey("resultCode")) { + String resultCode = msgObject.getString("resultCode"); + if ("0".equals(resultCode)) { + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /*** + * 流程强制收回 + */ + public void monitorPossessed(String requestid,String userid){ + String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorPossessed" ; + + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + JSONObject requestObject = new JSONObject(); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog("SendPortalMonitorUtil--monitorPossessed"); + String terminal = "1" ; + String taskType = "0"; + String actionType = "2" ; + try { + + String cus_staff = PropBean.getUfPropValue("cus_staff") ; + String scopeid = "-1"; + String scope = "HrmCustomFieldByInfoType" ; + + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String urlPc = "[newtab]"+Constants.bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = Constants.bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+Constants.bpm_app_requesturl+requestid; + String urlApp = replace+Constants.bpm_app_requesturl+requestid; + + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + bb.writeLog("monitorArchived-urlDing", urlDing); + + int count = 0 ; + String countSql =" select t2.userid \n" + + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','8','9','7','11')) \n" + + " and t2.islasttimes = 1\n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid ; + + bb.writeLog("monitorArchived--countSql:"+countSql); + rs.executeQuery(countSql); + while (rs.next()){ + count++; + } + bb.writeLog("monitorArchived--count:"+count); + if(count >0){ + + String requestname = "" ; + String workflowname = "" ; + String nodeId = "" ; + String nodeName = "" ; + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; + + bb.writeLog("monitorArchived--sql2:"+sql); + + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + nodeId = Util.null2String(rs.getString("nodeid")) ; + nodeName = Util.null2String(rs.getString("nodeName")) ; + } + + + requestObject.put("center",Constants.center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",nodeName); + requestObject.put("ticketType",workflowname); + + JSONArray taskObjectList = new JSONArray(); + + sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+ + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+ + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + + " left join workflow_nodebase d1 on d1.id = t2.nodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','8','9','7','11')) \n" + + " and t2.islasttimes = 1 \n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid ; + + rs.executeQuery(sql); + while (rs.next()) { + //归档节点抄送 + String creator = rs.getString("loginid"); + bb.writeLog("monitorArchived:"+requestid+" creator:"+creator); + if ("sysadmin".equals(creator)) { + creator = "Admin"; + } + + JSONObject taskObject = new JSONObject(); + taskObject.put("objectAction", "0"); + taskObject.put("objectType", "0"); + taskObject.put("objectCode", creator); + taskObject.put("objectId", rs.getString("staffid")); + taskObject.put("operatorCode", creator); + taskObjectList.add(taskObject); + } + + requestObject.put("taskObjectList",taskObjectList); + String auth = Constants.username + ":" + Constants.passwd; + bb.writeLog("monitorArchived---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl,requestObject.toJSONString(),auth); + + if (!"".equals(msgdata)) { + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if (msgObject.containsKey("resultCode")) { + String resultCode = msgObject.getString("resultCode"); + if ("0".equals(resultCode)) { + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + + /*** + * intervention + */ + public void monitorIntervention(String requestid,String userid){ + String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorIntervention" ; + + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + JSONObject requestObject = new JSONObject(); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog("SendPortalMonitorUtil--monitorIntervention"); + String terminal = "1" ; + String taskType = "0"; + String actionType = "2" ; + try { + + String cus_staff = PropBean.getUfPropValue("cus_staff") ; + String scopeid = "-1"; + String scope = "HrmCustomFieldByInfoType" ; + + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String urlPc = "[newtab]"+Constants.bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = Constants.bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+Constants.bpm_app_requesturl+requestid; + String urlApp = replace+Constants.bpm_app_requesturl+requestid; + + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + bb.writeLog("monitorIntervention-urlDing", urlDing); + + int count = 0 ; + String countSql =" select t2.userid \n" + + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','8','9','7','11')) \n" + + " and t2.islasttimes = 1\n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid ; + + bb.writeLog("monitorIntervention--countSql:"+countSql); + rs.executeQuery(countSql); + while (rs.next()){ + count++; + } + bb.writeLog("monitorIntervention--count:"+count); + if(count >0){ + + String requestname = "" ; + String workflowname = "" ; + String nodeId = "" ; + String nodeName = "" ; + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; + + bb.writeLog("monitorIntervention--sql2:"+sql); + + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + nodeId = Util.null2String(rs.getString("nodeid")) ; + nodeName = Util.null2String(rs.getString("nodeName")) ; + } + + requestObject.put("center",Constants.center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",nodeName); + requestObject.put("ticketType",workflowname); + + JSONArray taskObjectList = new JSONArray(); + + sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+ + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+ + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + + " left join workflow_nodebase d1 on d1.id = t2.nodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','8','9','7','11')) \n" + + " and t2.islasttimes = 1 \n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid ; + + rs.executeQuery(sql); + while (rs.next()) { + String creator = rs.getString("loginid"); + bb.writeLog("monitorIntervention:"+requestid+" creator:"+creator); + if ("sysadmin".equals(creator)) { + creator = "Admin"; + } + + JSONObject taskObject = new JSONObject(); + taskObject.put("objectAction", "0"); + taskObject.put("objectType", "0"); + taskObject.put("objectCode", creator); + taskObject.put("objectId", rs.getString("staffid")); + taskObject.put("operatorCode", creator); + taskObjectList.add(taskObject); + } + + requestObject.put("taskObjectList",taskObjectList); + String auth = Constants.username + ":" + Constants.passwd; + bb.writeLog("monitorIntervention---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl,requestObject.toJSONString(),auth); + + if (!"".equals(msgdata)) { + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if (msgObject.containsKey("resultCode")) { + String resultCode = msgObject.getString("resultCode"); + if ("0".equals(resultCode)) { + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /*** + * + * @param messageTitle + * @return + */ + private String getShortMessageTitle(String messageTitle) { + if (messageTitle.length() > 20) { + messageTitle = messageTitle.substring(0, 17) + "..."; + } + return messageTitle; + } + +} + +