#EC_HJ30# 流程监控强制撤回、强制归档、流程干预、删除对接门户
parent
911bf44f8b
commit
ff3c1f0a32
@ -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<Map<String,Object>> {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(Command<Map<String, Object>> 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<String, Object> result = nextExecute(targetCommand);
|
||||
Iterator<Map.Entry<String, Object>> iterator2 = result.entrySet().iterator();
|
||||
while (iterator2.hasNext()) {
|
||||
Map.Entry<String, Object> item = (Map.Entry<String, Object>) iterator2.next();
|
||||
String key = item.getKey();
|
||||
String value = Util.null2String(item.getValue());
|
||||
bb.writeLog("SendPortalMonitorDeleteCmd2:"+key +"----"+value);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -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<Map<String,Object>> {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
|
||||
//获取到被代理对象
|
||||
DoDeleteCmd doDeleteCmd = (DoDeleteCmd)targetCommand;
|
||||
//获取被代理对象的参数
|
||||
//对参数做预处理
|
||||
BaseBean bb = new BaseBean();
|
||||
bb.writeLog("SendPortalMonitorDeleteCmd");
|
||||
Map<String, Object> paramMap = doDeleteCmd.getParams();
|
||||
|
||||
Iterator<Map.Entry<String, Object>> iterator1 = paramMap.entrySet().iterator();
|
||||
while (iterator1.hasNext()) {
|
||||
Map.Entry<String, Object> item = (Map.Entry<String, Object>) 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<String, Object> result = nextExecute(targetCommand);
|
||||
//对返回值做加工处理
|
||||
|
||||
Iterator<Map.Entry<String, Object>> iterator2 = result.entrySet().iterator();
|
||||
while (iterator2.hasNext()) {
|
||||
Map.Entry<String, Object> item = (Map.Entry<String, Object>) iterator2.next();
|
||||
String key = item.getKey();
|
||||
String value = Util.null2String(item.getValue());
|
||||
bb.writeLog("SendPortalMonitorDeleteCmd2:"+key +"----"+value);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -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<Map<String,Object>> {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(Command<Map<String, Object>> 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<String, Object> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -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<String,Object> 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<String,Object> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue