diff --git a/src/com/customization/dito/sendtodo/SendPortalWithDeleteCmd.java b/src/com/customization/dito/sendtodo/SendPortalWithDeleteCmd.java index 4058e7bf..b295cfc2 100644 --- a/src/com/customization/dito/sendtodo/SendPortalWithDeleteCmd.java +++ b/src/com/customization/dito/sendtodo/SendPortalWithDeleteCmd.java @@ -2,6 +2,7 @@ package com.customization.dito.sendtodo; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.constant.Constants; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; import com.engine.core.cfg.annotation.CommandDynamicProxy; @@ -19,6 +20,7 @@ import weaver.interfaces.dito.comInfo.PropBean; import java.net.URLEncoder; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -33,64 +35,172 @@ public class SendPortalWithDeleteCmd { public Map execute(CommandContext commandContext) { + String requestid = Util.null2String(params.get("requestid")); - String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); - String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl"); - String portal_todourl = PropBean.getUfPropValue("portal_todourl"); - String username = PropBean.getUfPropValue("username"); - String passwd = PropBean.getUfPropValue("passwd"); - String center = PropBean.getUfPropValue("center"); - String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl"); - sendTodoDataByNode(requestid,username,passwd,center,portal_todourl,bpm_workflowurl,bpm_app_workflowurl,bpm_app_requesturl); + String currentUserId = "1"; + SendPortalWithDeleteTodo(requestid,currentUserId); + + List> deleteRemarkDatas = (List>)(params.get("deleteRemarkDatas")); + for(int i=0;i deleteRemarkMap = deleteRemarkDatas.get(i); + + String userid = deleteRemarkMap.get("userid"); + String lcid = deleteRemarkMap.get("requestid"); + + SendPortalWithDeleteToRead(lcid,currentUserId,userid); + } + return null; } - private String getShortMessageTitle(String messageTitle) { - if (messageTitle.length() > 20) { - messageTitle = messageTitle.substring(0, 17) + "..."; + + /** + * + * @param requestid + * @param currentUserId + */ + public void SendPortalWithDeleteTodo(String requestid,String currentUserId){ + + + String portal_todourl = Constants.portal_todourl; + String bpm_app_workflowurl = Constants.bpm_app_workflowurl; + String username = Constants.username; + String passwd = Constants.passwd; + String bpm_workflowurl = Constants.bpm_workflowurl; + String center = Constants.center; + String bpm_app_requesturl = Constants.bpm_app_requesturl; + + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + + String zhjkbs = "com.customization.dito.sendtodo.SendPortalWithDeleteCmd.SendPortalWithDeleteTodo" ; + + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + JSONObject requestObject = new JSONObject(); + RecordSet rs = new RecordSet(); + + BaseBean bb = new BaseBean(); + bb.writeLog("SendPortalWithDeleteCmd--SendPortalWithDeleteTodo"); + + String terminal = "1" ; + String taskType = "0"; + String actionType = "3" ; + + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + + try { + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+bpm_app_requesturl+requestid; + String urlApp = replace+bpm_app_requesturl+requestid; + + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + bb.writeLog("urlDing", urlDing); + + String requestname = "" ; + String workflowname = "" ; + String currentNodeId = "" ; + String currentNodeName = "" ; + + 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("SendPortalWithDeleteTodo--sql2:"+sql); + + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + currentNodeId = Util.null2String(rs.getString("nodeid")) ; + currentNodeName = Util.null2String(rs.getString("nodeName")) ; + } + + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",currentNodeId); + 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",currentNodeName); + requestObject.put("ticketType",workflowname); + + String auth = username + ":" + passwd; + bb.writeLog("SendPortalWithDeleteTodo---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + if (!"".equals(msgdata)) { + JSONObject msgObject = JSONObject.parseObject(msgdata); + if (msgObject.containsKey("resultCode")) { + String resultCode = msgObject.getString("resultCode"); + if ("0".equals(resultCode)) { + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + } + } + } + } catch (Exception e) { + e.printStackTrace(); } - return messageTitle; } + + + /** * - * @param username - * @param passwd - * @param portal_todourl - * @param bpm_workflowurl - * @param bpm_app_workflowurl - * @param bpm_app_requesturl + * @param requestid + * @param currentUserId */ - public void sendTodoDataByNode(String requestid,String username,String passwd,String center,String portal_todourl,String bpm_workflowurl,String bpm_app_workflowurl,String bpm_app_requesturl){ + public void SendPortalWithDeleteToRead(String requestid,String currentUserId,String userid){ + + + String portal_todourl = Constants.portal_todourl; + String bpm_app_workflowurl = Constants.bpm_app_workflowurl; + String username = Constants.username; + String passwd = Constants.passwd; + String bpm_workflowurl = Constants.bpm_workflowurl; + String center = Constants.center; + String bpm_app_requesturl = Constants.bpm_app_requesturl; + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); - String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + String zhjkbs = "com.customization.dito.sendtodo.SendPortalWithDeleteCmd.SendPortalWithDeleteToRead" ; + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); JSONObject requestObject = new JSONObject(); RecordSet rs = new RecordSet(); BaseBean bb = new BaseBean(); - bb.writeLog("SendPortalQithRawRunnable--sendTodoDataByNode"); + bb.writeLog("SendPortalWithDeleteCmd--SendPortalWithDeleteToRead"); String terminal = "1" ; String taskType = "0"; String actionType = "3" ; - String objectAction = "0" ; - String objectType = "0"; - try { - String sql=""; - // int userid = user.getUID(); - //String workcode = ""; - // String sql = " select * from (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) w where w.id = '" + userid + "'"; - // rs.executeQuery(sql); - // while (rs.next()) { - // workcode = Util.null2String(rs.getString("loginid")); - // } + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); - String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + try { String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; String replace = bpm_app_workflowurl.replace("/bpm", ""); @@ -103,33 +213,32 @@ public class SendPortalWithDeleteCmd { } bb.writeLog("urlDing", urlDing); - String requestname = "" ; String workflowname = "" ; - String nodeId = "" ; - String nodeName = "" ; - sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + String currentNodeId = "" ; + String currentNodeName = "" ; + + 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("sendTodoDataByNode--sql2:"+sql); + bb.writeLog("SendPortalWithDeleteToRead--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")) ; + currentNodeId = Util.null2String(rs.getString("nodeid")) ; + currentNodeName = Util.null2String(rs.getString("nodeName")) ; } requestObject.put("center",center); requestObject.put("title",requestname); - //requestObject.put("creator",workcode); - requestObject.put("taskCode","weaver"+requestid); - requestObject.put("nodeId",nodeId); + requestObject.put("taskCode", requestid+"_cs_"+userid); + requestObject.put("nodeId",currentNodeId); requestObject.put("taskType",taskType); requestObject.put("actionType",actionType); requestObject.put("createDate",processTime); @@ -139,45 +248,36 @@ public class SendPortalWithDeleteCmd { requestObject.put("urlPc",urlPc); requestObject.put("urlApp",urlApp); requestObject.put("urlDing",urlDing); - requestObject.put("nodeName",nodeName); + requestObject.put("nodeName",currentNodeName); requestObject.put("ticketType",workflowname); - - // JSONArray taskObjectList = new JSONArray(); -// JSONObject taskObject = new JSONObject(); -// taskObject.put("objectAction",objectAction); -// taskObject.put("objectType",objectType); -// taskObject.put("objectCode",workcode); -// taskObject.put("objectId",""); -// taskObject.put("operatorCode",workcode); -// taskObjectList.add(taskObject); - - // requestObject.put("taskObjectList",taskObjectList); - String auth = username + ":" + passwd; - bb.writeLog("sendTodoDataByNode---requestObject:"+requestObject.toJSONString()); + bb.writeLog("SendPortalWithDeleteToRead---requestObject:"+requestObject.toJSONString()); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); - bb.writeLog("msgdata:"+msgdata); - Map map = new HashMap<>(); - if(!"".equals(msgdata)){ + if (!"".equals(msgdata)) { JSONObject msgObject = JSONObject.parseObject(msgdata); - //{"resultCode":"1","resultMsg":"No Result"} - if(msgObject.containsKey("resultCode")){ + if (msgObject.containsKey("resultCode")) { String resultCode = msgObject.getString("resultCode"); - if("0".equals(resultCode)){ - map.put("resultCode","0"); + if ("0".equals(resultCode)) { + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs); }else{ - bb.writeLog(msgObject.get("resultMsg")); - // sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); - map.put("resultCode",resultCode); - map.put("resultMsg",msgObject.get("resultMsg")); + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); } } } - } catch (Exception e) { e.printStackTrace(); } } + + + private String getShortMessageTitle(String messageTitle) { + if (messageTitle.length() > 20) { + messageTitle = messageTitle.substring(0, 17) + "..."; + } + return messageTitle; + } + } diff --git a/src/com/engine/workflow/web/RequestMonitorListAction.java b/src/com/engine/workflow/web/RequestMonitorListAction.java index 59ce9759..e0c534a4 100644 --- a/src/com/engine/workflow/web/RequestMonitorListAction.java +++ b/src/com/engine/workflow/web/RequestMonitorListAction.java @@ -184,11 +184,9 @@ public class RequestMonitorListAction { 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); - } + Method method = clazz.getMethod(methodName, String.class,String.class); + Object newInstance = clazz.newInstance(); + method.invoke(newInstance,requestid,userid); } }catch (ClassNotFoundException | NoSuchMethodException e){ e.printStackTrace(); @@ -227,22 +225,20 @@ public class RequestMonitorListAction { try{ String requestid = Util.null2String(request.getParameter("multiRequestIds")); String userid = user.getUID()+"" ; - bb.writeLog("deleteRequestById-requestid"+requestid); - bb.writeLog("deleteRequestById-userid"+userid); + bb.writeLog("archivingRequestById-requestid"+requestid); + bb.writeLog("archivingRequestById-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); - } + 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); + bb.writeLog("archivingRequestById-ClassNotFoundException"+e); } }catch(Exception e){ @@ -359,22 +355,20 @@ public class RequestMonitorListAction { try{ String requestid = Util.null2String(request.getParameter("multiRequestIds")); String userid = user.getUID()+"" ; - bb.writeLog("deleteRequestById-requestid"+requestid); - bb.writeLog("deleteRequestById-userid"+userid); + bb.writeLog("repossessedRequestById-requestid"+requestid); + bb.writeLog("repossessedRequestById-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); - } + 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); + bb.writeLog("repossessedRequestById-ClassNotFoundException"+e); } }catch(Exception e){ diff --git a/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java b/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java index 6a6a252a..18bb9fd4 100644 --- a/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java +++ b/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java @@ -6,7 +6,7 @@ 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 org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; @@ -22,10 +22,10 @@ public class SendPortalMonitorUtil { /*** * 流程删除 - * @param requestid + * @param requestids * @param userid */ - public void monitorDelete(String requestid,String userid){ + public void monitorDelete(String requestids,String userid){ String portal_todourl = Constants.portal_todourl; @@ -36,7 +36,6 @@ public class SendPortalMonitorUtil { String center = Constants.center; String bpm_app_requesturl = Constants.bpm_app_requesturl; - String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorDelete" ; SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); @@ -49,82 +48,87 @@ public class SendPortalMonitorUtil { String terminal = "1" ; String taskType = "0"; String actionType = "3" ; - try { - - String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); - String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; - String replace = bpm_app_workflowurl.replace("/bpm", ""); - String urlDing = replace+bpm_app_requesturl+requestid; - String urlApp = replace+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",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 processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + + if(StringUtils.isNotBlank(requestids)) { + String[] lcids = requestids.split(","); + for (int i = 0; i < lcids.length; i++) { + String requestid = lcids[i]; + try { + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+bpm_app_requesturl+requestid; + String urlApp = replace+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 auth = username + ":" + passwd; - bb.writeLog("monitorDelete---requestObject:"+requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(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"); + 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 ; - 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); + bb.writeLog("monitorDelete--sql2:"+sql); - againMonitorDelete(requestid,userid,3); + 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",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 = username + ":" + passwd; + bb.writeLog("monitorDelete---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(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(); } } - } catch (Exception e) { - e.printStackTrace(); } } @@ -242,15 +246,16 @@ public class SendPortalMonitorUtil { * 流程强制归档 */ public void monitorArchived(String requestid,String userid){ + monitorArchivedByTodo(requestid,userid); monitorArchivedByToRead(requestid,userid); } /*** * 强制归档后,处理待办,推送到门户的todo - * @param requestid + * @param requestids */ - public void monitorArchivedByTodo(String requestid,String userid){ + public void monitorArchivedByTodo(String requestids,String currentUserId){ String portal_todourl = Constants.portal_todourl; String bpm_app_workflowurl = Constants.bpm_app_workflowurl; @@ -260,7 +265,6 @@ public class SendPortalMonitorUtil { String center = Constants.center; String bpm_app_requesturl = Constants.bpm_app_requesturl; - String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorArchivedByTodo" ; SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); @@ -273,141 +277,147 @@ public class SendPortalMonitorUtil { 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]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; - String replace = bpm_app_workflowurl.replace("/bpm", ""); - String urlDing = replace+bpm_app_requesturl+requestid; - String urlApp = replace+bpm_app_requesturl+requestid; - - if(StringUtils.isNotEmpty(mobileJumpUrl)){ - urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); - urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); - } - bb.writeLog("monitorArchivedByTodo-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','7','11')) \n" + - " and t2.islasttimes = 1\n" + - " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.requestid = "+requestid ; - - bb.writeLog("monitorArchivedByTodo--countSql:"+countSql); - rs.executeQuery(countSql); - while (rs.next()){ - count++; - } - bb.writeLog("monitorArchivedByTodo--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("monitorArchivedByTodo--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",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','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"); - String staffid = rs.getString("staffid"); - bb.writeLog("monitorArchived:"+requestid+" creator:"+creator); - if ("sysadmin".equals(creator)) { - creator = "Admin"; + String cus_staff = PropBean.getUfPropValue("cus_staff") ; + String scopeid = "-1"; + String scope = "HrmCustomFieldByInfoType" ; + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + + if(StringUtils.isNotBlank(requestids)){ + String[] lcids = requestids.split(","); + for(int i=0;i 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','7','11')) \n" + + " and t2.islasttimes = 1\n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid ; - requestObject.put("taskObjectList",taskObjectList); - String auth = username + ":" + passwd; - bb.writeLog("monitorArchived---requestObject:"+requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("monitorArchivedByTodo--countSql:"+countSql); + rs.executeQuery(countSql); + while (rs.next()){ + count++; + } + bb.writeLog("monitorArchivedByTodo--count:"+count); + if(count >0){ + + String requestname = "" ; + String workflowname = "" ; + String currentNodeId = "" ; + String currentNodeName = "" ; + 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("monitorArchivedByTodo--sql2:"+sql); + + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + currentNodeId = Util.null2String(rs.getString("nodeid")) ; + currentNodeName = Util.null2String(rs.getString("nodeName")) ; + } + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",currentNodeId); + 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",currentNodeName); + 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','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"); + String staffid = rs.getString("staffid"); + 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", staffid); + taskObject.put("operatorCode", creator); + taskObjectList.add(taskObject); + } - 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); + requestObject.put("taskObjectList",taskObjectList); + String auth = username + ":" + passwd; + bb.writeLog("monitorArchived---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(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,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + } + } } } + } catch (Exception e) { + e.printStackTrace(); } } - } catch (Exception e) { - e.printStackTrace(); } - } /*** * 强制归档后,处理抄送人员,推送到门户的toread - * @param requestid + * @param requestids */ - public void monitorArchivedByToRead(String requestid,String userid){ + public void monitorArchivedByToRead(String requestids,String currentUserId){ String portal_todourl = Constants.portal_todourl; String bpm_app_workflowurl = Constants.bpm_app_workflowurl; @@ -421,13 +431,13 @@ public class SendPortalMonitorUtil { bb.writeLog("sendOverTimeSubmitBytoRead"); RecordSet rs = new RecordSet(); - String zhjkbs = "weaver.interfaces.dito.overtime.SendPortalOverTimeSubmitUtil.sendOverTimeSubmitBytoRead" ; + String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorArchivedByToRead" ; SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); JSONObject requestObject = new JSONObject(); - bb.writeLog("SendPortalOverTimeSubmitUtil--sendOverTimeSubmit"); + bb.writeLog("SendPortalMonitorUtil--monitorArchivedByToRead"); String terminal = "1" ; String taskType = "1"; String actionType = "2" ; @@ -435,110 +445,116 @@ public class SendPortalMonitorUtil { String objectAction = "0"; String objectType = "0"; - 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]"+ bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; - String replace = bpm_app_workflowurl.replace("/bpm", ""); - String urlDing = replace+bpm_app_requesturl+requestid; - String urlApp = replace+bpm_app_requesturl+requestid; - - if(org.apache.commons.lang.StringUtils.isNotEmpty(mobileJumpUrl)){ - urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); - urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); - } - bb.writeLog("monitorArchived-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("monitorArchived--sql2:"+sql); + String cus_staff = PropBean.getUfPropValue("cus_staff") ; + String scopeid = "-1"; + String scope = "HrmCustomFieldByInfoType" ; + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + + if(StringUtils.isNotBlank(requestids)) { + String[] lcids = requestids.split(","); + for (int i = 0; i < lcids.length; i++) { + String requestid = lcids[i]; + try { + + String urlPc = "[newtab]"+ bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+bpm_app_requesturl+requestid; + String urlApp = replace+bpm_app_requesturl+requestid; + + if(org.apache.commons.lang.StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + bb.writeLog("monitorArchived-urlDing", urlDing); - 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",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 requestname = "" ; + String workflowname = "" ; + String currentNodeId = "" ; + String currentNodeName = "" ; + 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 ; - JSONArray taskObjectList = new JSONArray(); - sql = " select t2.userid,h1.loginid,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 in ('8','9')\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"); - String staffid = rs.getString("staffid"); - bb.writeLog("monitorArchived:"+requestid+" creator:"+creator); - if ("sysadmin".equals(creator)) { - creator = "Admin"; - } + bb.writeLog("monitorArchived--sql2:"+sql); - JSONObject taskObject = new JSONObject(); - taskObject.put("objectAction", objectAction); - taskObject.put("objectType", objectType); - taskObject.put("objectCode", creator); - taskObject.put("objectId", staffid); - taskObject.put("operatorCode", creator); - taskObjectList.add(taskObject); - } + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + currentNodeId = Util.null2String(rs.getString("nodeid")) ; + currentNodeName = Util.null2String(rs.getString("nodeName")) ; + } + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",currentNodeId); + 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",currentNodeName); + requestObject.put("ticketType",workflowname); + + JSONArray taskObjectList = new JSONArray(); + sql = " select t2.userid,h1.loginid,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 in ('8','9')\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"); + String staffid = rs.getString("staffid"); + bb.writeLog("monitorArchived:"+requestid+" creator:"+creator); + if ("sysadmin".equals(creator)) { + creator = "Admin"; + } - requestObject.put("taskObjectList",taskObjectList); - String auth = username + ":" + passwd; - bb.writeLog("monitorArchived---requestObject:"+requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + JSONObject taskObject = new JSONObject(); + taskObject.put("objectAction", objectAction); + taskObject.put("objectType", objectType); + taskObject.put("objectCode", creator); + taskObject.put("objectId", staffid); + taskObject.put("operatorCode", creator); + taskObjectList.add(taskObject); + } - if (!"".equals(msgdata)) { - JSONObject msgObject = JSONObject.parseObject(msgdata); - 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); + requestObject.put("taskObjectList",taskObjectList); + String auth = username + ":" + passwd; + bb.writeLog("monitorArchived---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + + if (!"".equals(msgdata)) { + JSONObject msgObject = JSONObject.parseObject(msgdata); + if (msgObject.containsKey("resultCode")) { + String resultCode = msgObject.getString("resultCode"); + if ("0".equals(resultCode)) { + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + } + } } + } catch (Exception e) { + e.printStackTrace(); } } - } catch (Exception e) { - e.printStackTrace(); } } @@ -546,7 +562,7 @@ public class SendPortalMonitorUtil { /*** * 流程强制收回 */ - public void monitorPossessed(String requestid,String userid){ + public void monitorPossessed(String requestids,String currentUserId){ String portal_todourl = Constants.portal_todourl; String bpm_app_workflowurl = Constants.bpm_app_workflowurl; @@ -569,26 +585,32 @@ public class SendPortalMonitorUtil { 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]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; - String replace = bpm_app_workflowurl.replace("/bpm", ""); - String urlDing = replace+bpm_app_requesturl+requestid; - String urlApp = replace+bpm_app_requesturl+requestid; + String cus_staff = PropBean.getUfPropValue("cus_staff") ; + String scopeid = "-1"; + String scope = "HrmCustomFieldByInfoType" ; + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); - if(StringUtils.isNotEmpty(mobileJumpUrl)){ - urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); - urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); - } - bb.writeLog("monitorArchived-urlDing", urlDing); + if(StringUtils.isNotBlank(requestids)) { + String[] lcids = requestids.split(","); + for (int i = 0; i < lcids.length; i++) { + String requestid = lcids[i]; + try { - int count = 0 ; - String countSql=" select t2.userid \n" + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+bpm_app_requesturl+requestid; + String urlApp = replace+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" + @@ -597,107 +619,109 @@ public class SendPortalMonitorUtil { " 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",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"); - String staffid = rs.getString("staffid"); - bb.writeLog("monitorArchived:"+requestid+" creator:"+creator); - if ("sysadmin".equals(creator)) { - creator = "Admin"; + 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 currentNodeId = "" ; + String currentNodeName = "" ; + + 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")) ; + currentNodeId = Util.null2String(rs.getString("nodeid")) ; + currentNodeName = Util.null2String(rs.getString("nodeName")) ; + } - JSONObject taskObject = new JSONObject(); - taskObject.put("objectAction", "0"); - taskObject.put("objectType", "0"); - taskObject.put("objectCode", creator); - taskObject.put("objectId", staffid); - taskObject.put("operatorCode", creator); - taskObjectList.add(taskObject); - } - requestObject.put("taskObjectList",taskObjectList); - String auth = username + ":" + passwd; - bb.writeLog("monitorArchived---requestObject:"+requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",currentNodeId); + 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",currentNodeName); + 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"); + String staffid = rs.getString("staffid"); + 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", staffid); + taskObject.put("operatorCode", creator); + taskObjectList.add(taskObject); + } - 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); + requestObject.put("taskObjectList",taskObjectList); + String auth = username + ":" + passwd; + bb.writeLog("monitorArchived---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(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,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + } + } } } + } catch (Exception e) { + e.printStackTrace(); } } - } catch (Exception e) { - e.printStackTrace(); } } @@ -706,7 +730,7 @@ public class SendPortalMonitorUtil { /*** * intervention */ - public void monitorIntervention(String requestid,String userid){ + public void monitorIntervention(String requestid,String currentUserId){ String portal_todourl = Constants.portal_todourl; String bpm_app_workflowurl = Constants.bpm_app_workflowurl; @@ -766,14 +790,15 @@ public class SendPortalMonitorUtil { String requestname = "" ; String workflowname = "" ; - String nodeId = "" ; - String nodeName = "" ; + String currentNodeId = "" ; + String currentNodeName = "" ; + 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 ; + " 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); @@ -781,14 +806,14 @@ public class SendPortalMonitorUtil { 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")) ; + currentNodeId = Util.null2String(rs.getString("nodeid")) ; + currentNodeName = Util.null2String(rs.getString("nodeName")) ; } requestObject.put("center",center); requestObject.put("title",requestname); requestObject.put("taskCode","weaver"+requestid); - requestObject.put("nodeId",nodeId); + requestObject.put("nodeId",currentNodeId); requestObject.put("taskType",taskType); requestObject.put("actionType",actionType); requestObject.put("createDate",processTime); @@ -798,7 +823,7 @@ public class SendPortalMonitorUtil { requestObject.put("urlPc",urlPc); requestObject.put("urlApp",urlApp); requestObject.put("urlDing",urlDing); - requestObject.put("nodeName",nodeName); + requestObject.put("nodeName",currentNodeName); requestObject.put("ticketType",workflowname); JSONArray taskObjectList = new JSONArray(); @@ -843,10 +868,10 @@ public class SendPortalMonitorUtil { if (msgObject.containsKey("resultCode")) { String resultCode = msgObject.getString("resultCode"); if ("0".equals(resultCode)) { - sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs); }else{ String resultmsg = msgObject.getString("resultMsg"); - sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs); } } }