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 params; public SendPortalWithDeleteCmd(Map params){ this.params = params; } public Map execute(CommandContext commandContext) { String requestid = Util.null2String(params.get("requestid")); String currentUserId = "1"; SendPortalWithDeleteTodo(requestid,currentUserId); List> deleteRemarkDatas = (List>)(params.get("deleteRemarkDatas")); for(int i=0;i deleteRemarkMap = deleteRemarkDatas.get(i); String userid = deleteRemarkMap.get("userid"); String lcid = deleteRemarkMap.get("requestid"); SendPortalWithDeleteToRead(lcid,currentUserId,userid); } return null; } /** * * @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; } }