@ -2,9 +2,8 @@ package com.customization.dito.sendtodo;
import com.alibaba.fastjson.JSONArray ;
import com.alibaba.fastjson.JSONObject ;
import com.constant.Constants ;
import com.time.util.DateUtil ;
import org.apache.commons.lang .StringUtils;
import org.apache.commons.lang 3 .StringUtils;
import weaver.conn.RecordSet ;
import weaver.general.BaseBean ;
import weaver.general.Util ;
@ -19,10 +18,7 @@ import java.util.regex.Pattern;
public class SendPortalTodoUtil {
//public static String EMAIL_REGEX_DEFAULT = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$" ;
//cus_fielddata存储的staffid字段名
//private String staffIdFieldByCus = PropBean.getUfPropValue("staffIdFieldByCus");
/ * * *
* 流 程 发 起 节 点 , 发 起 保 存 不 提 交 , 发 起 节 点 有 待 办 , 下 个 节 点 没 有 待 办
* @param requestid
@ -58,14 +54,15 @@ public class SendPortalTodoUtil {
try {
String processTime = DateUtil . getCurrentTime ( "yyyy-MM-dd HH:mm:ss" ) ;
String lastname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String userids = "" ;
String loginid = "" ;
String currentNodeId = "" ;
String currentNodeName = "" ;
String nextNodeUserIds = "" ;
String workflowname = "" ;
int userid = user . getUID ( ) ;
String currentUserId = user . getUID ( ) + "" ;
String createrLoginId = "" ;
String createrLastName = "" ;
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid ;
String replace = bpm_app_workflowurl . replace ( "/bpm" , "" ) ;
@ -87,10 +84,10 @@ public class SendPortalTodoUtil {
" left join cus_fielddata c1 on c1.id = t2.userid and scopeid= " + scopeid + " and 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 (select id,lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" where t2.userid in (" + useri d+ ") \n" +
" where t2.userid in (" + currentUserI d+ ") \n" +
" and (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','7','8','9','11'))\n" +
" and (ifnull(t1.currentstatus, -1) = -1 or (ifnull(t1.currentstatus, -1) = 0 and t1.creater in (" + useri d+ "))) \n" +
" and (ifnull(t1.currentstatus, -1) = -1 or (ifnull(t1.currentstatus, -1) = 0 and t1.creater in (" + currentUserI d+ "))) \n" +
" and t2.islasttimes = 1 \n" +
" and (t2.isprocessing = '' or t2.isprocessing is null) \n" +
" and t2.requestid = " + requestid ;
@ -100,11 +97,10 @@ public class SendPortalTodoUtil {
if ( rs . next ( ) ) {
workflowname = Util . null2String ( rs . getString ( "workflowname" ) ) ;
requestname = Util . null2String ( rs . getString ( "requestname" ) ) ;
nodeId = Util . null2String ( rs . getString ( "nodeid" ) ) ;
nodeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
loginid = Util . null2String ( rs . getString ( "loginid" ) ) ;
lastname = Util . null2String ( rs . getString ( "lastname" ) ) ;
userids = Util . null2String ( rs . getString ( "userid" ) ) ;
currentNodeId = Util . null2String ( rs . getString ( "nodeid" ) ) ;
currentNodeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
createrLoginId = Util . null2String ( rs . getString ( "loginid" ) ) ;
createrLastName = Util . null2String ( rs . getString ( "lastname" ) ) ;
String email = Util . null2String ( rs . getString ( "email" ) ) ;
bb . writeLog ( "email1:" + email ) ;
@ -112,13 +108,16 @@ public class SendPortalTodoUtil {
if ( matcher . matches ( ) ) {
emailArray + = StringUtils . isEmpty ( emailArray ) ? email : "," + email ;
}
String userid = Util . null2String ( rs . getString ( "userid" ) ) ;
nextNodeUserIds + = StringUtils . isEmpty ( nextNodeUserIds ) ? userid : "," + userid ;
}
requestObject . put ( "center" , center ) ;
requestObject . put ( "title" , requestname ) ;
requestObject . put ( "creator" , logini d) ;
requestObject . put ( "creator" , createrLoginI d) ;
requestObject . put ( "taskCode" , "weaver" + requestid ) ;
requestObject . put ( "nodeId" , nodeId) ;
requestObject . put ( "nodeId" , curre ntN odeId) ;
requestObject . put ( "taskType" , taskType ) ;
requestObject . put ( "actionType" , actionType ) ;
requestObject . put ( "createDate" , processTime ) ;
@ -128,18 +127,18 @@ public class SendPortalTodoUtil {
requestObject . put ( "urlPc" , urlPc ) ;
requestObject . put ( "urlApp" , urlApp ) ;
requestObject . put ( "urlDing" , urlDing ) ;
requestObject . put ( "nodeName" , nodeName) ;
requestObject . put ( "nodeName" , curre ntN odeName) ;
requestObject . put ( "ticketType" , workflowname ) ;
JSONArray taskObjectList = new JSONArray ( ) ;
JSONObject taskObject = new JSONObject ( ) ;
if ( "sysadmin" . equals ( logini d) ) {
logini d = "Admin" ;
if ( "sysadmin" . equals ( createrLoginI d) ) {
createrLoginI d = "Admin" ;
}
String objectCode = logini d ;
String operatorCode = logini d ;
String objectCode = createrLoginI d ;
String operatorCode = createrLoginI d ;
String staffid = Util . null2String ( rs . getString ( "staffid" ) ) ;
taskObject . put ( "objectAction" , objectAction ) ;
@ -169,18 +168,18 @@ public class SendPortalTodoUtil {
if ( StringUtils . isNotEmpty ( emailArray ) )
{
Map < String , String > templateMap = getEmailTemplate ( requestname , lastn ame, processTime ) ;
Map < String , String > templateMap = getEmailTemplate ( requestname , createrLastN ame, processTime ) ;
String notificationSubject = templateMap . get ( "notificationSubject" ) ;
String notificationContent = templateMap . get ( "notificationContent" ) ;
sendMailUtil . sendMail ( requestid , emailArray , notificationSubject , notificationContent ) ;
}
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId, nodeName , userids , requestObject . toJSONString ( ) , resultCode , "" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , currentNodeId, currentNodeName , currentUserId , requestObject . toJSONString ( ) , resultCode , "" ) ;
} else {
String resultmsg = msgObject . getString ( "resultMsg" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId, nodeName , userids , requestObject . toJSONString ( ) , resultCode , resultmsg ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , currentNodeId, currentNodeName , currentUserId , requestObject . toJSONString ( ) , resultCode , resultmsg ) ;
}
}
}
@ -224,24 +223,17 @@ public class SendPortalTodoUtil {
String objectType = "0" ;
try {
String userids = "" ;
String lastname = "" ;
// 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" ) ;
JSONArray taskObjectList = new JSONArray ( ) ;
String requestname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String currentNodeId = "" ;
String currentNodeName = "" ;
String workflowname = "" ;
String loginid = "" ;
String createrLoginId = "" ;
String createrLastName = "" ;
String nextNodeUserIds = "" ;
String currentUserId = user . getUID ( ) + "" ;
String sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname,h2.loginid " +
" from workflow_requestbase t1\n" +
@ -255,11 +247,11 @@ public class SendPortalTodoUtil {
rs . executeQuery ( sql ) ;
if ( rs . next ( ) ) {
requestname = Util . null2String ( rs . getString ( "requestname" ) ) ;
nodeId = Util . null2String ( rs . getString ( "nodeid" ) ) ;
nodeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
curre ntN odeId = Util . null2String ( rs . getString ( "nodeid" ) ) ;
curre ntN odeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
workflowname = Util . null2String ( rs . getString ( "workflowname" ) ) ;
lastn ame = Util . null2String ( rs . getString ( "lastname" ) ) ;
logini d = Util . null2String ( rs . getString ( "loginid" ) ) ;
createrLastN ame = Util . null2String ( rs . getString ( "lastname" ) ) ;
createrLoginI d = Util . null2String ( rs . getString ( "loginid" ) ) ;
}
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid ;
@ -272,18 +264,12 @@ public class SendPortalTodoUtil {
urlApp + = "&returnUrl=" + URLEncoder . encode ( mobileJumpUrl , "UTF-8" ) ;
}
// String urlDing = replace+bpm_app_requesturl+requestid;
// String urlApp = replace+bpm_app_requesturl+requestid;
bb . writeLog ( "urlDing" , urlDing ) ;
JSONObject requestObject = new JSONObject ( ) ;
requestObject . put ( "center" , center ) ;
requestObject . put ( "title" , requestname ) ;
requestObject . put ( "creator" , logini d) ;
requestObject . put ( "creator" , createrLoginId ) ;
requestObject . put ( "taskCode" , "weaver" + requestid ) ;
requestObject . put ( "nodeId" , nodeId) ;
requestObject . put ( "nodeId" , currentNodeId ) ;
requestObject . put ( "taskType" , taskType ) ;
requestObject . put ( "actionType" , actionType ) ;
requestObject . put ( "createDate" , processTime ) ;
@ -293,7 +279,7 @@ public class SendPortalTodoUtil {
requestObject . put ( "urlPc" , urlPc ) ;
requestObject . put ( "urlApp" , urlApp ) ;
requestObject . put ( "urlDing" , urlDing ) ;
requestObject . put ( "nodeName" , nodeName) ;
requestObject . put ( "nodeName" , curre ntN odeName) ;
requestObject . put ( "ticketType" , workflowname ) ;
sql = " select t2.userid,h1.loginid,h1.email,c1." + cus_staff + " as staffid " +
@ -315,7 +301,7 @@ public class SendPortalTodoUtil {
String userocde = Util . null2String ( rs . getString ( "loginid" ) ) ;
String staffid = Util . null2String ( rs . getString ( "staffid" ) ) ;
String userid = Util . null2String ( rs . getString ( "userid" ) ) ;
userids + = StringUtils . isEmpty ( useri ds) ? userid : "," + userid ;
nextNodeUserIds + = StringUtils . isEmpty ( nextNodeUserI ds) ? userid : "," + userid ;
if ( "sysadmin" . equals ( userocde ) ) {
userocde = "Admin" ;
@ -348,127 +334,121 @@ public class SendPortalTodoUtil {
bb . writeLog ( "sendTodoDataByCreater-msgdata:" + msgdata ) ;
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 ) ) {
bb . writeLog ( "emailArray:" + emailArray ) ;
if ( StringUtils . isNotEmpty ( emailArray ) )
{
// String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time";
// String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time";
Map < String , String > templateMap = getEmailTemplate ( requestname , lastname , processTime ) ;
Map < String , String > templateMap = getEmailTemplate ( requestname , createrLastName , processTime ) ;
String notificationSubject = templateMap . get ( "notificationSubject" ) ;
String notificationContent = templateMap . get ( "notificationContent" ) ;
sendMailUtil . sendMail ( requestid , emailArray , notificationSubject , notificationContent ) ;
}
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId, nodeName , userids , requestObject . toJSONString ( ) , resultCode , "" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , currentNodeId, currentNodeName , currentUserId , requestObject . toJSONString ( ) , resultCode , "" ) ;
} else {
String resultmsg = msgObject . getString ( "resultMsg" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId, nodeName , userids , requestObject . toJSONString ( ) , resultCode , resultmsg ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , currentNodeId, currentNodeName , currentUserId , requestObject . toJSONString ( ) , resultCode , resultmsg ) ;
}
}
}
}
//处理抄送的
JSONObject taskObject = new JSONObject ( ) ;
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 t1.currentnodetype = 3"+
// " and ((t2.isremark = '8' and t2.preisremark='8') or (t2.isremark = '9' and t2.preisremark='9'))\n" +
" and t2.isremark in ('2','9','8')\n" +
" and t2.preisremark in ('8','9')\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = " + requestid + " and t2.userid = " + user . getUID ( ) ;
rs . executeQuery ( sql ) ;
boolean hasData = true ;
if ( rs . next ( ) ) {
hasData = false ;
JSONArray list = new JSONArray ( ) ;
JSONObject requestObject2 = new JSONObject ( ) ;
requestObject2 . putAll ( requestObject ) ;
//归档节点抄送
String email = Util . null2String ( rs . getString ( "email" ) ) ;
requestObject2 . put ( "nodeName" , rs . getString ( "nodename" ) ) ;
requestObject2 . put ( "nodeId" , rs . getString ( "nodeid" ) ) ;
requestObject2 . put ( "taskCode" , rs . getString ( "requestid" ) + "_cs_" + rs . getString ( "userid" ) ) ;
String creator = rs . getString ( "loginid" ) ;
if ( "sysadmin" . equals ( creator ) ) {
creator = "Admin" ;
}
taskObject . put ( "objectAction" , "0" ) ;
taskObject . put ( "objectType" , "0" ) ;
taskObject . put ( "objectCode" , creator ) ;
taskObject . put ( "objectId" , rs . getString ( "staffid" ) ) ;
taskObject . put ( "operatorCode" , creator ) ;
list . add ( taskObject ) ;
//归档节点抄送
requestObject2 . put ( "messageTitle" , getShortMessageTitle ( requestname ) ) ;
requestObject2 . put ( "messageContent" , requestname ) ;
requestObject2 . put ( "terminal" , "1" ) ;
requestObject2 . put ( "taskType" , "1" ) ;
requestObject2 . put ( "actionType" , "2" ) ;
requestObject2 . put ( "taskObjectList" , list ) ;
String auth = username + ":" + passwd ;
bb . writeLog ( "SendPortalToReadUtil--requestObject:" + requestObject2 . toJSONString ( ) ) ;
String msgdata = httpRequestUtil . doPostByAuth ( Constants . portal_todourl , requestObject2 . toJSONString ( ) , auth ) ;
bb . writeLog ( "SendPortalToReadUtil-msgdata:" + msgdata ) ;
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 ) ) {
Matcher matcher = regex . matcher ( email ) ;
if ( matcher . matches ( ) ) {
emailArray + = StringUtils . isEmpty ( emailArray ) ? email : "," + email ;
}
bb . writeLog ( "emailArray:" + emailArray ) ;
if ( StringUtils . isNotEmpty ( emailArray ) ) {
Map < String , String > templateMap = getEmailTemplate ( requestname , rs . getString ( "lastname" ) , processTime ) ;
String notificationSubject = templateMap . get ( "notificationSubject" ) ;
String notificationContent = templateMap . get ( "notificationContent" ) ;
//sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
}
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId , rs . getString ( "nodename" ) , rs . getString ( "userid" ) , requestObject2 . toJSONString ( ) , resultCode , "" ) ;
} else if ( "TODO-FAIL-002" . equals ( resultCode ) ) {
//The task does not exist.任务不存在,则新增
SendPortalToReadUtil sendPortalToReadUtil = new SendPortalToReadUtil ( ) ;
sendPortalToReadUtil . sendToReadDataByCreateNode ( requestid , user , portal_todourl , bpm_app_workflowurl , username , passwd , bpm_workflowurl , center , bpm_app_requesturl ) ;
} else {
String resultmsg = msgObject . getString ( "resultMsg" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId , rs . getString ( "nodename" ) , rs . getString ( "userid" ) , requestObject2 . toJSONString ( ) , resultCode , resultmsg ) ;
// JSONObject taskObject = new JSONObject();
// 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 t1.currentnodetype = 3"+
// // " and ((t2.isremark = '8' and t2.preisremark='8') or (t2.isremark = '9' and t2.preisremark='9'))\n" +
// " and t2.isremark in ('2','9','8')\n" +
// " and t2.preisremark in ('8','9')\n" +
// " and t2.islasttimes = 1\n" +
// " and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid+ " and t2.userid = "+user.getUID();
// rs.executeQuery(sql);
// boolean hasData = true;
// if (rs.next()){
// hasData = false;
// JSONArray list = new JSONArray();
// JSONObject requestObject2 = new JSONObject();
// requestObject2.putAll(requestObject);
//
// //归档节点抄送
// String email = Util.null2String(rs.getString("email"));
// requestObject2.put("nodeName",rs.getString("nodename"));
// requestObject2.put("nodeId",rs.getString("nodeid"));
// requestObject2.put("taskCode",rs.getString("requestid")+"_cs_"+rs.getString("userid"));
//
//
// String creator = rs.getString("loginid");
// if("sysadmin".equals(creator)){
// creator = "Admin";
// }
// taskObject.put("objectAction","0");
// taskObject.put("objectType","0");
// taskObject.put("objectCode",creator);
// taskObject.put("objectId",rs.getString("staffid"));
// taskObject.put("operatorCode",creator);
// list.add(taskObject);
// //归档节点抄送
// requestObject2.put("messageTitle",getShortMessageTitle(requestname));
// requestObject2.put("messageContent", requestname);
// requestObject2.put("terminal", "1");
// requestObject2.put("taskType", "1");
// requestObject2.put("actionType", "2");
//
// requestObject2.put("taskObjectList",list);
//
// String auth = username + ":" + passwd;
//
// bb.writeLog("SendPortalToReadUtil--requestObject:" + requestObject2.toJSONString());
// String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl, requestObject2.toJSONString(), auth);
// bb.writeLog("SendPortalToReadUtil-msgdata:" + msgdata);
// 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)) {
// Matcher matcher = regex.matcher(email);
// if (matcher.matches()) {
// emailArray += StringUtils.isEmpty(emailArray) ? email : "," + email;
// }
//
// bb.writeLog("emailArray:" + emailArray);
// if (StringUtils.isNotEmpty(emailArray)) {
//
// Map<String,String> templateMap = getEmailTemplate(requestname,rs.getString("lastname"),processTime);
// String notificationSubject = templateMap.get("notificationSubject");
// String notificationContent = templateMap.get("notificationContent");
// //sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
// }
//
// sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,rs.getString("nodename"),rs.getString("userid"),requestObject2.toJSONString(),resultCode,"");
//
// }else if ("TODO-FAIL-002".equals(resultCode)){
// //The task does not exist.任务不存在,则新增
// SendPortalToReadUtil sendPortalToReadUtil = new SendPortalToReadUtil();
// sendPortalToReadUtil.sendToReadDataByCreateNode(requestid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
//
// }else{
//
// String resultmsg = msgObject.getString("resultMsg");
// sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,rs.getString("nodename"),rs.getString("userid"),requestObject2.toJSONString(),resultCode,resultmsg);
//
// }
// }
// }
// }
}
}
}
}
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
@ -504,22 +484,22 @@ public class SendPortalTodoUtil {
String emailArray = "" ;
Pattern regex = Pattern . compile ( EMAIL_REGEX_DEFAULT ) ;
try {
// int userid = user.getUID();
String lastname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String userids = "" ;
String loginid = "" ;
// 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 createrLoginId = "" ;
String currentNodeId = "" ;
String currentNodeName = "" ;
String nextNodeUserIds = "" ;
String currentLoginId = user . getLoginid ( ) ;
String currentStaffId = "" ;
String createrLastName = "" ;
String currentUserId = user . getUID ( ) + "" ;
String userSql = "select " + cus_staff + " as staffid from cus_fielddata where scopeid=" + scopeid + " and scope='" + scope + "' and id=?" ;
rs . executeQuery ( userSql , currentUserId ) ;
if ( rs . next ( ) ) {
currentStaffId = Util . null2String ( rs . getString ( "staffid" ) ) ;
}
String processTime = DateUtil . getCurrentTime ( "yyyy-MM-dd HH:mm:ss" ) ;
int count = 0 ;
String countSql = " select t2.userid\n" +
" from workflow_requestbase t1\n" +
@ -530,10 +510,13 @@ public class SendPortalTodoUtil {
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = " + requestid +
" and t2.nodeid = " + noideid ;
bb . writeLog ( "sendTodoDataByNode--countSql:" + countSql ) ;
rs . executeQuery ( countSql ) ;
while ( rs . next ( ) ) {
count + + ;
String userid = Util . null2String ( rs . getString ( "userid" ) ) ;
// nextNodeUserIds += StringUtils.isBlank(nextNodeUserIds) ? userid :","+userid ;
}
bb . writeLog ( "sendTodoDataByNode--count:" + count ) ;
@ -545,16 +528,8 @@ public class SendPortalTodoUtil {
String actionType = "1" ;
String objectAction = "1" ;
String objectType = "0" ;
String objectId = "" ;
String workflowname = "" ;
// 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 ;
String sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname,h2.loginid " +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
@ -569,10 +544,11 @@ public class SendPortalTodoUtil {
if ( rs . next ( ) ) {
requestname = Util . null2String ( rs . getString ( "requestname" ) ) ;
workflowname = Util . null2String ( rs . getString ( "workflowname" ) ) ;
nodeId = Util . null2String ( rs . getString ( "nodeid" ) + user . getUID ( ) ) ;
nodeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
lastname = Util . null2String ( rs . getString ( "lastname" ) ) ;
loginid = Util . null2String ( rs . getString ( "loginid" ) ) ;
// currentNodeId = Util.null2String(rs.getString("nodeid")+currentUserId) ;
currentNodeId = Util . null2String ( rs . getString ( "nodeid" ) ) ;
currentNodeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
createrLoginId = Util . null2String ( rs . getString ( "loginid" ) ) ;
createrLastName = Util . null2String ( rs . getString ( "lastname" ) ) ;
}
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid ;
@ -588,14 +564,16 @@ public class SendPortalTodoUtil {
// String urlDing = replace+bpm_app_requesturl+requestid;
// String urlApp = replace+bpm_app_requesturl+requestid;
if ( "sysadmin" . equals ( currentLoginId ) ) {
currentLoginId = "Admin" ;
}
bb . writeLog ( "urlDing" , urlDing ) ;
requestObject . put ( "center" , center ) ;
requestObject . put ( "title" , requestname ) ;
requestObject . put ( "creator" , logini d) ;
requestObject . put ( "creator" , createrLoginI d) ;
requestObject . put ( "taskCode" , "weaver" + requestid ) ;
requestObject . put ( "nodeId" , nodeId) ;
requestObject . put ( "nodeId" , curre ntN odeId) ;
requestObject . put ( "taskType" , taskType ) ;
requestObject . put ( "actionType" , actionType ) ;
requestObject . put ( "createDate" , processTime ) ;
@ -605,36 +583,22 @@ public class SendPortalTodoUtil {
requestObject . put ( "urlPc" , urlPc ) ;
requestObject . put ( "urlApp" , urlApp ) ;
requestObject . put ( "urlDing" , urlDing ) ;
requestObject . put ( "nodeName" , nodeName) ;
requestObject . put ( "nodeName" , curre ntN odeName) ;
requestObject . put ( "ticketType" , workflowname ) ;
String usercode = user . getLoginid ( ) ;
if ( "sysadmin" . equals ( usercode ) ) {
usercode = "Admin" ;
}
String objectCode = usercode ;
String operatorCode = usercode ;
String objectCode = currentLoginId ;
String operatorCode = currentLoginId ;
JSONObject taskObject = new JSONObject ( ) ;
taskObject . put ( "objectAction" , objectAction ) ;
taskObject . put ( "objectType" , objectType ) ;
taskObject . put ( "objectCode" , objectCode ) ;
taskObject . put ( "operatorCode" , operatorCode ) ;
String userSql = "select " + cus_staff + " as staffid from cus_fielddata where scopeid=-1 and scope='HrmCustomFieldByInfoType' and id=?" ;
rs . executeQuery ( userSql , user . getUID ( ) ) ;
if ( rs . next ( ) ) {
taskObject . put ( "objectId" , Util . null2String ( rs . getString ( "staffid" ) ) ) ;
}
taskObject . put ( "objectId" , currentStaffId ) ;
taskObjectList . add ( taskObject ) ;
requestObject . put ( "taskObjectList" , taskObjectList ) ;
userids = user . getUID ( ) + "" ;
if ( taskObjectList . size ( ) > 0 ) {
String auth = username + ":" + passwd ;
//bb.writeLog("requestObject:"+requestObject.toJSONString());
msgdata = httpRequestUtil . doPostByAuth ( portal_todourl , requestObject . toJSONString ( ) , auth ) ;
}
@ -646,15 +610,6 @@ public class SendPortalTodoUtil {
JSONArray taskObjectList = new JSONArray ( ) ;
String workflowname = "" ;
// 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 ;
String sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname,h2.loginid " +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
@ -669,10 +624,11 @@ public class SendPortalTodoUtil {
if ( rs . next ( ) ) {
requestname = Util . null2String ( rs . getString ( "requestname" ) ) ;
workflowname = Util . null2String ( rs . getString ( "workflowname" ) ) ;
nodeId = Util . null2String ( rs . getString ( "nodeid" ) + user . getUID ( ) ) ;
nodeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
lastname = Util . null2String ( rs . getString ( "lastname" ) ) ;
loginid = Util . null2String ( rs . getString ( "loginid" ) ) ;
// currentNodeId = Util.null2String(rs.getString("nodeid")+currentUserId) ;
currentNodeId = Util . null2String ( rs . getString ( "nodeid" ) ) ;
currentNodeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
createrLoginId = Util . null2String ( rs . getString ( "loginid" ) ) ;
createrLastName = Util . null2String ( rs . getString ( "lastname" ) ) ;
}
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid ;
@ -689,9 +645,9 @@ public class SendPortalTodoUtil {
requestObject . put ( "center" , center ) ;
requestObject . put ( "title" , requestname ) ;
requestObject . put ( "creator" , logini d) ;
requestObject . put ( "creator" , createrLoginI d) ;
requestObject . put ( "taskCode" , "weaver" + requestid ) ;
requestObject . put ( "nodeId" , nodeId) ;
requestObject . put ( "nodeId" , curre ntN odeId) ;
requestObject . put ( "taskType" , taskType ) ;
requestObject . put ( "actionType" , actionType ) ;
requestObject . put ( "createDate" , processTime ) ;
@ -701,19 +657,9 @@ public class SendPortalTodoUtil {
requestObject . put ( "urlPc" , urlPc ) ;
requestObject . put ( "urlApp" , urlApp ) ;
requestObject . put ( "urlDing" , urlDing ) ;
requestObject . put ( "nodeName" , nodeName) ;
requestObject . put ( "nodeName" , curre ntN odeName) ;
requestObject . put ( "ticketType" , workflowname ) ;
// sql = " select t2.userid,h1.loginid,h1.email,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" +
// " 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', '7','8','9','11'))\n" +
// " and t2.islasttimes = 1\n" +
// " and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid;
sql = " select t2.userid,h1.loginid,h1.email,c1." + cus_staff + " as staffid " +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
@ -732,8 +678,7 @@ public class SendPortalTodoUtil {
String usercode = Util . null2String ( rs . getString ( "loginid" ) ) ;
String staffid = Util . null2String ( rs . getString ( "staffid" ) ) ;
String userid = Util . null2String ( rs . getString ( "userid" ) ) ;
userids + = StringUtils . isEmpty ( userids ) ? userid : "," + userid ;
nextNodeUserIds + = StringUtils . isBlank ( nextNodeUserIds ) ? userid : "," + userid ;
if ( "sysadmin" . equals ( usercode ) ) {
usercode = "Admin" ;
}
@ -761,11 +706,8 @@ public class SendPortalTodoUtil {
} else {
requestObject . put ( "actionType" , "3" ) ;
}
//if (taskObjectList.size() > 0){
String auth = username + ":" + passwd ;
//bb.writeLog("requestObject:"+requestObject.toJSONString());
msgdata = httpRequestUtil . doPostByAuth ( portal_todourl , requestObject . toJSONString ( ) , auth ) ;
//}
}
bb . writeLog ( "msgdata:" + msgdata ) ;
if ( ! "" . equals ( msgdata ) ) {
@ -781,115 +723,115 @@ public class SendPortalTodoUtil {
// String notificationSubject = "You have a new To-Do task:"+requestname+",Please handle it in time";
// String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time";
Map < String , String > templateMap = getEmailTemplate ( requestname , lastn ame, processTime ) ;
Map < String , String > templateMap = getEmailTemplate ( requestname , createrLastN ame, processTime ) ;
String notificationSubject = templateMap . get ( "notificationSubject" ) ;
String notificationContent = templateMap . get ( "notificationContent" ) ;
sendMailUtil . sendMail ( requestid , emailArray , notificationSubject , notificationContent ) ;
}
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId, nodeName , userids , requestObject . toJSONString ( ) , resultCode , "" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , currentNodeId, currentNodeName , currentUserId , requestObject . toJSONString ( ) , resultCode , "" ) ;
} else {
String resultmsg = msgObject . getString ( "resultMsg" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId , nodeName , userids , requestObject . toJSONString ( ) , resultCode , resultmsg ) ;
}
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , currentNodeId , currentNodeName , currentUserId , requestObject . toJSONString ( ) , resultCode , resultmsg ) ;
}
}
//处理抄送的
JSONObject taskObject = new JSONObject ( ) ;
String 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 t1.currentnodetype = 3"+
// " and ((t2.isremark = '8' and t2.preisremark='8') or (t2.isremark = '9' and t2.preisremark='9'))\n" +
" and t2.isremark in ('2','9','8')\n" +
" and t2.preisremark in ('8','9')\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = " + requestid + " and t2.userid = " + user . getUID ( ) ;
rs . executeQuery ( sql ) ;
boolean hasData = true ;
if ( rs . next ( ) ) {
hasData = false ;
JSONArray list = new JSONArray ( ) ;
JSONObject requestObject2 = new JSONObject ( ) ;
requestObject2 . putAll ( requestObject ) ;
//归档节点抄送
String email = Util . null2String ( rs . getString ( "email" ) ) ;
requestObject2 . put ( "nodeName" , rs . getString ( "nodename" ) ) ;
requestObject2 . put ( "nodeId" , rs . getString ( "nodeid" ) ) ;
requestObject2 . put ( "taskCode" , rs . getString ( "requestid" ) + "_cs_" + rs . getString ( "userid" ) ) ;
String creator = rs . getString ( "loginid" ) ;
if ( "sysadmin" . equals ( creator ) ) {
creator = "Admin" ;
}
taskObject . put ( "objectAction" , "0" ) ;
taskObject . put ( "objectType" , "0" ) ;
taskObject . put ( "objectCode" , creator ) ;
taskObject . put ( "objectId" , rs . getString ( "staffid" ) ) ;
taskObject . put ( "operatorCode" , creator ) ;
list . add ( taskObject ) ;
//归档节点抄送
requestObject2 . put ( "messageTitle" , getShortMessageTitle ( requestname ) ) ;
requestObject2 . put ( "messageContent" , requestname ) ;
requestObject2 . put ( "terminal" , "1" ) ;
requestObject2 . put ( "taskType" , "1" ) ;
requestObject2 . put ( "actionType" , "2" ) ;
requestObject2 . put ( "taskObjectList" , list ) ;
String auth = username + ":" + passwd ;
bb . writeLog ( "SendPortalToReadUtil--requestObject:" + requestObject2 . toJSONString ( ) ) ;
msgdata = httpRequestUtil . doPostByAuth ( Constants . portal_todourl , requestObject2 . toJSONString ( ) , auth ) ;
bb . writeLog ( "SendPortalToReadUtil-msgdata:" + msgdata ) ;
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 ) ) {
Matcher matcher = regex . matcher ( email ) ;
if ( matcher . matches ( ) ) {
emailArray + = StringUtils . isEmpty ( emailArray ) ? email : "," + email ;
}
bb . writeLog ( "emailArray:" + emailArray ) ;
if ( StringUtils . isNotEmpty ( emailArray ) ) {
Map < String , String > templateMap = getEmailTemplate ( requestname , rs . getString ( "lastname" ) , processTime ) ;
String notificationSubject = templateMap . get ( "notificationSubject" ) ;
String notificationContent = templateMap . get ( "notificationContent" ) ;
//sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
}
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId , rs . getString ( "nodename" ) , rs . getString ( "userid" ) , requestObject2 . toJSONString ( ) , resultCode , "" ) ;
} else if ( "TODO-FAIL-002" . equals ( resultCode ) ) {
//The task does not exist.任务不存在,则新增
SendPortalToReadUtil sendPortalToReadUtil = new SendPortalToReadUtil ( ) ;
sendPortalToReadUtil . sendToReadDataByCreateNode ( requestid , user , portal_todourl , bpm_app_workflowurl , username , passwd , bpm_workflowurl , center , bpm_app_requesturl ) ;
} else {
String resultmsg = msgObject . getString ( "resultMsg" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId , rs . getString ( "nodename" ) , rs . getString ( "userid" ) , requestObject2 . toJSONString ( ) , resultCode , resultmsg ) ;
}
}
}
}
// //处理抄送的
// JSONObject taskObject = new JSONObject();
// String 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 t1.currentnodetype = 3"+
// // " and ((t2.isremark = '8' and t2.preisremark='8') or (t2.isremark = '9' and t2.preisremark='9'))\n" +
// " and t2.isremark in ('2','9','8')\n" +
// " and t2.preisremark in ('8','9')\n" +
// " and t2.islasttimes = 1\n" +
// " and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid+ " and t2.userid = "+user.getUID();
// rs.executeQuery(sql);
// boolean hasData = true;
// if (rs.next()){
// hasData = false;
// JSONArray list = new JSONArray();
// JSONObject requestObject2 = new JSONObject();
// requestObject2.putAll(requestObject);
//
// //归档节点抄送
// String email = Util.null2String(rs.getString("email"));
// requestObject2.put("nodeName",rs.getString("nodename"));
// requestObject2.put("nodeId",rs.getString("nodeid"));
// requestObject2.put("taskCode",rs.getString("requestid")+"_cs_"+rs.getString("userid"));
//
//
// String creator = rs.getString("loginid");
// if("sysadmin".equals(creator)){
// creator = "Admin";
// }
// taskObject.put("objectAction","0");
// taskObject.put("objectType","0");
// taskObject.put("objectCode",creator);
// taskObject.put("objectId",rs.getString("staffid"));
// taskObject.put("operatorCode",creator);
// list.add(taskObject);
//
// //归档节点抄送
//
// requestObject2.put("messageTitle",getShortMessageTitle(requestname));
// requestObject2.put("messageContent", requestname);
// requestObject2.put("terminal", "1");
// requestObject2.put("taskType", "1");
// requestObject2.put("actionType", "2");
//
// requestObject2.put("taskObjectList",list);
//
// String auth = username + ":" + passwd;
//
// bb.writeLog("SendPortalToReadUtil--requestObject:" + requestObject2.toJSONString());
// msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl, requestObject2.toJSONString(), auth);
// bb.writeLog("SendPortalToReadUtil-msgdata:" + msgdata);
// 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)) {
// Matcher matcher = regex.matcher(email);
// if (matcher.matches()) {
// emailArray += StringUtils.isEmpty(emailArray) ? email : "," + email;
// }
//
// bb.writeLog("emailArray:" + emailArray);
// if (StringUtils.isNotEmpty(emailArray)) {
//
// Map<String,String> templateMap = getEmailTemplate(requestname,rs.getString("lastname"),processTime);
// String notificationSubject = templateMap.get("notificationSubject");
// String notificationContent = templateMap.get("notificationContent");
// //sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
// }
//
// sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,rs.getString("nodename"),rs.getString("userid"),requestObject2.toJSONString(),resultCode,"");
//
// }else if ("TODO-FAIL-002".equals(resultCode)){
// //The task does not exist.任务不存在,则新增
// SendPortalToReadUtil sendPortalToReadUtil = new SendPortalToReadUtil();
// sendPortalToReadUtil.sendToReadDataByCreateNode(requestid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
//
// }else{
//
// String resultmsg = msgObject.getString("resultMsg");
// sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,rs.getString("nodename"),rs.getString("userid"),requestObject2.toJSONString(),resultCode,resultmsg);
//
// }
// }
// }
// }
} catch ( Exception e ) {
e . printStackTrace ( ) ;
@ -926,33 +868,21 @@ public class SendPortalTodoUtil {
String scope = "HrmCustomFieldByInfoType" ;
try {
// int userid = user.getUID();
String lastname = user . getLastname ( ) ;
// 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 actionType = "2" ;
JSONArray taskObjectList = new JSONArray ( ) ;
String createrLastName = "" ;
String createrLoginId = "" ;
String workflowname = "" ;
String requestname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String useri ds = "" ;
String loginid = "" ;
String curre ntN odeId = "" ;
String curre ntN odeName = "" ;
String nextNodeUserI ds = "" ;
String currentUserId = user . getUID ( ) + "" ;
// 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 ;
String sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname " +
" from workflow_requestbase t1\n" +
@ -968,10 +898,10 @@ public class SendPortalTodoUtil {
if ( rs . next ( ) ) {
workflowname = Util . null2String ( rs . getString ( "workflowname" ) ) ;
requestname = Util . null2String ( rs . getString ( "requestname" ) ) ;
nodeId = Util . null2String ( rs . getString ( "nodeid" ) ) ;
nodeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
lastn ame = Util . null2String ( rs . getString ( "lastname" ) ) ;
logini d = Util . null2String ( rs . getString ( "loginid" ) ) ;
curre ntN odeId = Util . null2String ( rs . getString ( "nodeid" ) ) ;
curre ntN odeName = Util . null2String ( rs . getString ( "nodeName" ) ) ;
createrLastN ame = Util . null2String ( rs . getString ( "lastname" ) ) ;
createrLoginI d = Util . null2String ( rs . getString ( "loginid" ) ) ;
}
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid ;
@ -984,18 +914,12 @@ public class SendPortalTodoUtil {
urlApp + = "&returnUrl=" + URLEncoder . encode ( mobileJumpUrl , "UTF-8" ) ;
}
// String urlDing = replace+bpm_app_requesturl+requestid ;
// String urlApp = replace+bpm_app_requesturl+requestid ;
bb . writeLog ( "urlDing" , urlDing ) ;
JSONObject requestObject = new JSONObject ( ) ;
requestObject . put ( "center" , center ) ;
requestObject . put ( "title" , requestname ) ;
requestObject . put ( "creator" , logini d) ;
requestObject . put ( "creator" , createrLoginId ) ;
requestObject . put ( "taskCode" , "weaver" + requestid ) ;
requestObject . put ( "nodeId" , nodeId) ;
requestObject . put ( "nodeId" , currentNodeId ) ;
requestObject . put ( "taskType" , taskType ) ;
requestObject . put ( "actionType" , actionType ) ;
requestObject . put ( "createDate" , processTime ) ;
@ -1005,7 +929,7 @@ public class SendPortalTodoUtil {
requestObject . put ( "urlPc" , urlPc ) ;
requestObject . put ( "urlApp" , urlApp ) ;
requestObject . put ( "urlDing" , urlDing ) ;
requestObject . put ( "nodeName" , nodeName) ;
requestObject . put ( "nodeName" , curre ntN odeName) ;
requestObject . put ( "ticketType" , workflowname ) ;
sql = " select t2.userid,h1.loginid,h1.email,c1." + cus_staff + " as staffid " +
@ -1026,7 +950,7 @@ public class SendPortalTodoUtil {
String usercode = Util . null2String ( rs . getString ( "loginid" ) ) ;
String staffid = Util . null2String ( rs . getString ( "staffid" ) ) ;
String userid = Util . null2String ( rs . getString ( "userid" ) ) ;
userids + = StringUtils . isEmpty ( useri ds) ? userid : "," + userid ;
nextNodeUserIds + = StringUtils . isBlank ( nextNodeUserI ds) ? userid : "," + userid ;
JSONObject taskObject = new JSONObject ( ) ;
@ -1055,12 +979,10 @@ public class SendPortalTodoUtil {
requestObject . put ( "taskObjectList" , taskObjectList ) ;
String auth = username + ":" + passwd ;
//bb.writeLog("requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil . doPostByAuth ( portal_todourl , requestObject . toJSONString ( ) , auth ) ;
bb . writeLog ( "msgdata:" + msgdata ) ;
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 ) ) {
@ -1068,21 +990,17 @@ public class SendPortalTodoUtil {
bb . writeLog ( "emailArray:" + emailArray ) ;
if ( StringUtils . isNotEmpty ( emailArray ) )
{
// String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time";
// String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time";
Map < String , String > templateMap = getEmailTemplate ( requestname , lastname , processTime ) ;
Map < String , String > templateMap = getEmailTemplate ( requestname , createrLastName , processTime ) ;
String notificationSubject = templateMap . get ( "notificationSubject" ) ;
String notificationContent = templateMap . get ( "notificationContent" ) ;
sendMailUtil . sendMail ( requestid , emailArray , notificationSubject , notificationContent ) ;
}
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId, nodeName , userids , requestObject . toJSONString ( ) , resultCode , "" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , currentNodeId, currentNodeName , currentUserId , requestObject . toJSONString ( ) , resultCode , "" ) ;
} else {
String resultmsg = msgObject . getString ( "resultMsg" ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , nodeId , nodeName , userids , requestObject . toJSONString ( ) , resultCode , resultmsg ) ;
sendPortalErrorUtil . doRecordPortalErrorInfo ( requestid , currentNodeId , currentNodeName , currentUserId , requestObject . toJSONString ( ) , resultCode , resultmsg ) ;
}
}
}
@ -1109,9 +1027,6 @@ public class SendPortalTodoUtil {
return name ;
}
/ * * *
*
* @param requestname