#EC_HJ108# 门户待办接口优化

main
shilei 2 years ago
parent 5b24a66d46
commit 21962bf8c9

@ -1,6 +1,8 @@
package com.customization.dito.sendtodo; package com.customization.dito.sendtodo;
import com.constant.Constants; import com.constant.Constants;
import com.customization.dito.sendtodo.agent.SendPortalToReadByAgentUtil;
import com.customization.dito.sendtodo.agent.SendPortalTodoByAgentUtil;
import com.engine.core.cfg.annotation.CommandDynamicProxy; import com.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy; import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command; import com.engine.core.interceptor.Command;
@ -9,7 +11,6 @@ import com.engine.workflow.entity.requestForm.RequestOperationResultBean;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Map; import java.util.Map;
@ -61,6 +62,10 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
bb.writeLog("src:"+src); bb.writeLog("src:"+src);
bb.writeLog("nodeid:"+nodeid); bb.writeLog("nodeid:"+nodeid);
bb.writeLog("workflowname:"+workflowname); bb.writeLog("workflowname:"+workflowname);
bb.writeLog("user:"+user.getLoginid());
bb.writeLog("f_weaver_belongto_userid:"+f_weaver_belongto_userid);
bb.writeLog("f_weaver_belongto_usertype:"+f_weaver_belongto_usertype);
bb.writeLog("creater:"+creater);
//参数回写 //参数回写
//执行标准的业务处理 //执行标准的业务处理
@ -99,7 +104,10 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
* 2: * 2:
*/ */
if("2".equals(agentType)){ if("2".equals(agentType)){
SendPortalTodoByAgentUtil sendPortalTodoByAgentUtil = new SendPortalTodoByAgentUtil();
sendPortalTodoByAgentUtil.sendTodoDataByNode(requestid,nodeid,f_weaver_belongto_userid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
SendPortalToReadByAgentUtil sendPortalToReadByAgentUtil = new SendPortalToReadByAgentUtil();
sendPortalToReadByAgentUtil.sendToReadDataByNode(requestid,nodeid,f_weaver_belongto_userid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
}else{ }else{
sendPortalTodoUtil.sendTodoDataByNode(requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); sendPortalTodoUtil.sendTodoDataByNode(requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
sendPortalToReadUtil.sendToReadDataByNode(requestid,user,nodeid,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); sendPortalToReadUtil.sendToReadDataByNode(requestid,user,nodeid,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);

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

Loading…
Cancel
Save