From 21962bf8c958246ae1d2bbcd1d6bf3cb3e9c79ff Mon Sep 17 00:00:00 2001 From: shilei <798989044@qq.com> Date: Tue, 24 Oct 2023 10:41:09 +0800 Subject: [PATCH] =?UTF-8?q?#EC=5FHJ108#=20=E9=97=A8=E6=88=B7=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dito/sendtodo/SendPortalTodoCmd.java | 12 +- .../dito/sendtodo/SendPortalTodoUtil.java | 703 ++++++++---------- 2 files changed, 319 insertions(+), 396 deletions(-) diff --git a/src/com/customization/dito/sendtodo/SendPortalTodoCmd.java b/src/com/customization/dito/sendtodo/SendPortalTodoCmd.java index 946180ce..7851a708 100644 --- a/src/com/customization/dito/sendtodo/SendPortalTodoCmd.java +++ b/src/com/customization/dito/sendtodo/SendPortalTodoCmd.java @@ -1,6 +1,8 @@ package com.customization.dito.sendtodo; 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.interceptor.AbstractCommandProxy; import com.engine.core.interceptor.Command; @@ -9,7 +11,6 @@ import com.engine.workflow.entity.requestForm.RequestOperationResultBean; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; -import weaver.interfaces.dito.comInfo.PropBean; import javax.servlet.http.HttpServletRequest; import java.util.Map; @@ -61,6 +62,10 @@ public class SendPortalTodoCmd extends AbstractCommandProxy> bb.writeLog("src:"+src); bb.writeLog("nodeid:"+nodeid); 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> * 2:代理人提交流程 */ 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{ 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); diff --git a/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java b/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java index 5f2de48d..0c913401 100644 --- a/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java @@ -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.lang3.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 ("+userid+") \n" + + " where t2.userid in ("+currentUserId+") \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 ("+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.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",loginid); + 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); @@ -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",currentNodeName); requestObject.put("ticketType",workflowname); JSONArray taskObjectList = new JSONArray(); JSONObject taskObject = new JSONObject(); - if("sysadmin".equals(loginid)){ - loginid = "Admin"; + if("sysadmin".equals(createrLoginId)){ + createrLoginId = "Admin"; } - String objectCode = loginid ; - String operatorCode = loginid ; + String objectCode = createrLoginId ; + String operatorCode = createrLoginId ; String staffid = Util.null2String(rs.getString("staffid")); taskObject.put("objectAction",objectAction); @@ -169,18 +168,18 @@ public class SendPortalTodoUtil { if(StringUtils.isNotEmpty(emailArray)) { - Map templateMap = getEmailTemplate(requestname,lastname,processTime); + Map 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); } } } @@ -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")) ; + currentNodeId = Util.null2String(rs.getString("nodeid")) ; + currentNodeName = Util.null2String(rs.getString("nodeName")) ; workflowname = Util.null2String(rs.getString("workflowname")) ; - lastname = Util.null2String(rs.getString("lastname")) ; - loginid = Util.null2String(rs.getString("loginid")) ; + createrLastName = Util.null2String(rs.getString("lastname")) ; + createrLoginId = 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",loginid); + 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",currentNodeName); 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(userids) ? userid : ","+userid ; + nextNodeUserIds += StringUtils.isEmpty(nextNodeUserIds) ? 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 templateMap = getEmailTemplate(requestname,lastname,processTime); + Map 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 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 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,36 +484,39 @@ 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" + - " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\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','11'))\n" + - " and t2.islasttimes = 1\n" + - " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.requestid = "+requestid+ - " and t2.nodeid = " + noideid ; + String countSql = " select t2.userid\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\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','11'))\n" + + " and t2.islasttimes = 1\n" + + " 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,23 +528,15 @@ 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" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ - " 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 (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" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " 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 (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; bb.writeLog("sendTodoDataByNode--sql:"+sql); @@ -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",loginid); + 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); @@ -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",currentNodeName); 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",loginid); + 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); @@ -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",currentNodeName); 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); - //} + String auth = username + ":" + passwd; + 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 templateMap = getEmailTemplate(requestname,lastname,processTime); + Map 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(); - 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 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 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 userids = "" ; - String loginid = ""; - -// 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 currentNodeId = ""; + String currentNodeName = "" ; + String nextNodeUserIds = "" ; + String currentUserId = user.getUID()+"" ; + 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")) ; - lastname = Util.null2String(rs.getString("lastname")) ; - loginid = Util.null2String(rs.getString("loginid")) ; + currentNodeId = Util.null2String(rs.getString("nodeid")) ; + currentNodeName = Util.null2String(rs.getString("nodeName")) ; + createrLastName = Util.null2String(rs.getString("lastname")) ; + createrLoginId = 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",loginid); + 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,14 +929,14 @@ public class SendPortalTodoUtil { requestObject.put("urlPc",urlPc); requestObject.put("urlApp",urlApp); requestObject.put("urlDing",urlDing); - requestObject.put("nodeName",nodeName); + requestObject.put("nodeName",currentNodeName); 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" + + " 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', '11'))\n" + " and t2.islasttimes = 1\n" + @@ -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(userids) ? userid : ","+userid ; + nextNodeUserIds += StringUtils.isBlank(nextNodeUserIds) ? 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 templateMap = getEmailTemplate(requestname,lastname,processTime); + Map 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