You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
275 lines
11 KiB
Java
275 lines
11 KiB
Java
package com.customization.dito.sendtodo;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.constant.Constants;
|
|
import com.engine.core.interceptor.CommandContext;
|
|
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.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* 流程删除后给门户发送删除消息,进行同步
|
|
*/
|
|
public class SendPortalWithDeleteCmd {
|
|
private Map<String,Object> params;
|
|
|
|
public SendPortalWithDeleteCmd(Map<String,Object> params){
|
|
this.params = params;
|
|
}
|
|
|
|
|
|
public Map<String, Object> execute(CommandContext commandContext) {
|
|
|
|
String requestid = Util.null2String(params.get("requestid"));
|
|
|
|
String currentUserId = "1";
|
|
SendPortalWithDeleteTodo(requestid,currentUserId);
|
|
|
|
List<Map<String,String>> deleteRemarkDatas = (List<Map<String,String>>)(params.get("deleteRemarkDatas"));
|
|
for(int i=0;i<deleteRemarkDatas.size();i++){
|
|
Map<String,String> deleteRemarkMap = deleteRemarkDatas.get(i);
|
|
|
|
String userid = deleteRemarkMap.get("userid");
|
|
String lcid = deleteRemarkMap.get("requestid");
|
|
|
|
SendPortalWithDeleteToRead(lcid,currentUserId,userid);
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
/**
|
|
*
|
|
* @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();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
*
|
|
* @param requestid
|
|
* @param currentUserId
|
|
*/
|
|
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 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("SendPortalWithDeleteCmd--SendPortalWithDeleteToRead");
|
|
|
|
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("SendPortalWithDeleteToRead--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", requestid+"_cs_"+userid);
|
|
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("SendPortalWithDeleteToRead---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();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private String getShortMessageTitle(String messageTitle) {
|
|
if (messageTitle.length() > 20) {
|
|
messageTitle = messageTitle.substring(0, 17) + "...";
|
|
}
|
|
return messageTitle;
|
|
}
|
|
|
|
}
|