#EC_HJ30# 流程监控强制撤回、强制归档、流程干预、删除对接门户

main
shilei 2 years ago
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,496 @@
package com.engine.workflow.web;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import com.engine.common.util.ParamUtil;
import com.engine.workflow.service.impl.RequestMonitorListServiceImpl;
import org.apache.commons.lang3.StringUtils;
import weaver.filter.WeaverRequest;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import com.alibaba.fastjson.JSONObject;
import com.engine.workflow.service.RequestMonitorListService;
import com.engine.common.util.ServiceUtil;
/**
* (action)
* @author luosy 2017/11/13.
* @version 1.1
*/
public class RequestMonitorListAction {
// private RequestMonitorListService monitorService = (RequestMonitorListServiceImpl)ServiceUtil.getService(RequestMonitorListServiceImpl.class);
private RequestMonitorListService monitorService = null;
private void setService(User user){
monitorService = (RequestMonitorListServiceImpl)ServiceUtil.getService(RequestMonitorListServiceImpl.class,user);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/getConditionInfo")
@Produces(MediaType.TEXT_PLAIN)
public String getConditionInfo(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
//新表数据初始化
monitorService.monitorInitData(ParamUtil.request2Map(request), user);
apidatas = monitorService.getConditionInfo(request,user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/getSessionkey")
@Produces(MediaType.TEXT_PLAIN)
public String getSessionkey(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
WeaverRequest weaverRequest = new WeaverRequest(request);
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.getSessionkey(weaverRequest,user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/getTotal")
@Produces(MediaType.TEXT_PLAIN)
public String getTotal(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.getTotal(request,user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/getTree")
@Produces(MediaType.TEXT_PLAIN)
public String getTree(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
WeaverRequest weaverRequest = new WeaverRequest(request);
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.getTree(weaverRequest,user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/delete")
@Produces(MediaType.TEXT_PLAIN)
public String deleteRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.deleteRequestById(request, user);
BaseBean bb = new BaseBean();
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
String userid = user.getUID()+"" ;
bb.writeLog("deleteRequestById-requestid"+requestid);
bb.writeLog("deleteRequestById-userid"+userid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ;
String methodName = "monitorDelete" ;
Class<?> clazz = Class.forName(className);
if(clazz.getMethod(methodName,String.class) != null) {
Method method = clazz.getMethod(methodName, String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,requestid,userid);
}
}
}catch (ClassNotFoundException | NoSuchMethodException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/archiving")
@Produces(MediaType.TEXT_PLAIN)
public String archivingRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.archivingRequestById(request, response, user);
BaseBean bb = new BaseBean();
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
String userid = user.getUID()+"" ;
bb.writeLog("deleteRequestById-requestid"+requestid);
bb.writeLog("deleteRequestById-userid"+userid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ;
String methodName = "monitorArchived" ;
Class<?> clazz = Class.forName(className);
if(clazz.getMethod(methodName,String.class) != null) {
Method method = clazz.getMethod(methodName, String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,requestid,userid);
}
}
}catch (ClassNotFoundException | NoSuchMethodException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/stop")
@Produces(MediaType.TEXT_PLAIN)
public String stopRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.stopRequestById(request, user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/open")
@Produces(MediaType.TEXT_PLAIN)
public String openRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.openRequestById(request, user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/cancel")
@Produces(MediaType.TEXT_PLAIN)
public String cancelRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.cancelRequestById(request, user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/repossessed")
@Produces(MediaType.TEXT_PLAIN)
public String repossessedRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.repossessedRequestById(request, response, user);
BaseBean bb = new BaseBean();
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
String userid = user.getUID()+"" ;
bb.writeLog("deleteRequestById-requestid"+requestid);
bb.writeLog("deleteRequestById-userid"+userid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ;
String methodName = "monitorPossessed" ;
Class<?> clazz = Class.forName(className);
if(clazz.getMethod(methodName,String.class) != null) {
Method method = clazz.getMethod(methodName, String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,requestid,userid);
}
}
}catch (ClassNotFoundException | NoSuchMethodException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
* ,requestid
* @param request
* @param response
* @return
*/
@POST
@Path("/intervention")
@Produces(MediaType.TEXT_PLAIN)
public String interventionRequestById(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.interventionRequestById(request, user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
* sessionkey
* @param request
* @param response
* @return
*/
@POST
@Path("/getLogSessionkey")
@Produces(MediaType.TEXT_PLAIN)
public String getLogSessionkey(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.getLogSessionkey(request,user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/getLogConditionInfo")
@Produces(MediaType.TEXT_PLAIN)
public String getLogConditionInfo(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.getLogConditionInfo(user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@POST
@Path("/getUsers")
@Produces(MediaType.TEXT_PLAIN)
public String getUsers(@Context HttpServletRequest request,@Context HttpServletResponse response){
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser(request, response);
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
setService(user);
apidatas = monitorService.getUsersByNodeid(request, user);
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
}

@ -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…
Cancel
Save