package com.customization.dito.sendtodo ;
import com.alibaba.fastjson.JSONArray ;
import com.alibaba.fastjson.JSONObject ;
import com.engine.common.biz.AbstractCommonCommand ;
import com.engine.common.entity.BizLogContext ;
import com.engine.core.cfg.annotation.CommandDynamicProxy ;
import com.engine.core.interceptor.AbstractCommandProxy ;
import com.engine.core.interceptor.Command ;
import com.engine.core.interceptor.CommandContext ;
import com.engine.workflow.cmd.monitor.DoDeleteCmd ;
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.hrm.User ;
import weaver.interfaces.dito.comInfo.PropBean ;
import java.net.URLEncoder ;
import java.util.HashMap ;
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 bpm_app_workflowurl = PropBean . getUfPropValue ( "bpm_app_workflowurl" ) ;
String bpm_app_requesturl = PropBean . getUfPropValue ( "bpm_app_requesturl" ) ;
String portal_todourl = PropBean . getUfPropValue ( "portal_todourl" ) ;
String username = PropBean . getUfPropValue ( "username" ) ;
String passwd = PropBean . getUfPropValue ( "passwd" ) ;
String center = PropBean . getUfPropValue ( "center" ) ;
String bpm_workflowurl = PropBean . getUfPropValue ( "bpm_workflowurl" ) ;
sendTodoDataByNode ( requestid , username , passwd , center , portal_todourl , bpm_workflowurl , bpm_app_workflowurl , bpm_app_requesturl ) ;
return null ;
}
private String getShortMessageTitle ( String messageTitle ) {
if ( messageTitle . length ( ) > 20 ) {
messageTitle = messageTitle . substring ( 0 , 17 ) + "..." ;
}
return messageTitle ;
}
/ * *
*
* @param username
* @param passwd
* @param portal_todourl
* @param bpm_workflowurl
* @param bpm_app_workflowurl
* @param bpm_app_requesturl
* /
public void sendTodoDataByNode ( String requestid , String username , String passwd , String center , String portal_todourl , String bpm_workflowurl , String bpm_app_workflowurl , String bpm_app_requesturl ) {
HttpRequestUtil httpRequestUtil = new HttpRequestUtil ( ) ;
String mobileJumpUrl = PropBean . getUfPropValue ( "mobileJumpUrl" ) ;
JSONObject requestObject = new JSONObject ( ) ;
RecordSet rs = new RecordSet ( ) ;
BaseBean bb = new BaseBean ( ) ;
bb . writeLog ( "SendPortalQithRawRunnable--sendTodoDataByNode" ) ;
String terminal = "1" ;
String taskType = "0" ;
String actionType = "3" ;
String objectAction = "0" ;
String objectType = "0" ;
try {
String sql = "" ;
// int userid = user.getUID();
//String workcode = "";
// String sql = " select * from (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) w where w.id = '" + userid + "'";
// rs.executeQuery(sql);
// while (rs.next()) {
// workcode = Util.null2String(rs.getString("loginid"));
// }
String processTime = DateUtil . getCurrentTime ( "yyyy-MM-dd HH:mm:ss" ) ;
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid ;
String replace = bpm_app_workflowurl . replace ( "/bpm" , "" ) ;
String urlDing = replace + bpm_app_requesturl + requestid ;
String urlApp = replace + bpm_app_requesturl + requestid ;
if ( StringUtils . isNotEmpty ( mobileJumpUrl ) ) {
urlDing + = "&returnUrl=" + URLEncoder . encode ( mobileJumpUrl , "UTF-8" ) ;
urlApp + = "&returnUrl=" + URLEncoder . encode ( mobileJumpUrl , "UTF-8" ) ;
}
bb . writeLog ( "urlDing" , urlDing ) ;
String requestname = "" ;
String workflowname = "" ;
String nodeId = "" ;
String nodeName = "" ;
sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid " +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = " + requestid ;
bb . writeLog ( "sendTodoDataByNode--sql2:" + sql ) ;
rs . executeQuery ( sql ) ;
if ( rs . next ( ) ) {
requestname = Util . null2String ( rs . getString ( "requestname" ) ) ;
workflowname = Util . null2String ( rs . getString ( "workflowname" ) ) ;
nodeId = Util . null2String ( rs . getString ( "nodeid" ) ) ;
nodeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
}
requestObject . put ( "center" , center ) ;
requestObject . put ( "title" , requestname ) ;
//requestObject.put("creator",workcode);
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();
// JSONObject taskObject = new JSONObject();
// taskObject.put("objectAction",objectAction);
// taskObject.put("objectType",objectType);
// taskObject.put("objectCode",workcode);
// taskObject.put("objectId","");
// taskObject.put("operatorCode",workcode);
// taskObjectList.add(taskObject);
// requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd ;
bb . writeLog ( "sendTodoDataByNode---requestObject:" + requestObject . toJSONString ( ) ) ;
String msgdata = httpRequestUtil . doPostByAuth ( portal_todourl , requestObject . toJSONString ( ) , auth ) ;
bb . writeLog ( "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 ) ) {
map . put ( "resultCode" , "0" ) ;
} else {
bb . writeLog ( msgObject . get ( "resultMsg" ) ) ;
// sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo();
map . put ( "resultCode" , resultCode ) ;
map . put ( "resultMsg" , msgObject . get ( "resultMsg" ) ) ;
}
}
}
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
}
}