From af1d5cff9130187e1d19047a1245df9693131930 Mon Sep 17 00:00:00 2001 From: shilei Date: Fri, 17 Feb 2023 10:07:35 +0800 Subject: [PATCH] =?UTF-8?q?#HJ-30#=20=E6=8F=90=E4=BA=A4=E6=9C=80=E6=96=B0?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dito/sendtodo/SendPortalDoneUtil.java | 170 ++++++++++--- .../dito/sendtodo/SendPortalErrorUtil.java | 88 ++++++- .../dito/sendtodo/SendPortalToReadUtil.java | 73 +++--- .../dito/sendtodo/SendPortalTodoUtil.java | 234 ++++++++++++------ .../sendtodo/SendPortalWithRawRunnable.java | 153 +++++------- 5 files changed, 473 insertions(+), 245 deletions(-) diff --git a/src/com/customization/dito/sendtodo/SendPortalDoneUtil.java b/src/com/customization/dito/sendtodo/SendPortalDoneUtil.java index f6cdabd2..0c1e26aa 100644 --- a/src/com/customization/dito/sendtodo/SendPortalDoneUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalDoneUtil.java @@ -10,7 +10,9 @@ import weaver.general.Util; import weaver.hrm.User; import weaver.interfaces.dito.comInfo.PropBean; +import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.util.Map; public class SendPortalDoneUtil { @@ -466,12 +468,14 @@ public class SendPortalDoneUtil { public void sendPortalDoneData(String requestid, String nodeid, User user, String portal_doneurl, String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String bpm_app_requesturl) { BaseBean bb = new BaseBean(); bb.writeLog("sendPortalDoneData"); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + RecordSet rs = new RecordSet(); String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); try { - HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); - RecordSet rs = new RecordSet(); + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); String isRecall = "1"; String actionType = "0"; @@ -486,42 +490,129 @@ public class SendPortalDoneUtil { String center = PropBean.getUfPropValue("center"); String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; - String app_requestUrl = bpm_app_requesturl + requestid; - app_requestUrl = URLEncoder.encode(app_requestUrl, "UTF-8"); + // String urlApp = "[newtab]" + bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl; String replace = bpm_app_workflowurl.replace("/bpm", ""); String urlDing = replace+bpm_app_requesturl+requestid; String urlApp = replace+bpm_app_requesturl+requestid; if(StringUtils.isNotEmpty(mobileJumpUrl)){ - urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); - urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + try { + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } catch (UnsupportedEncodingException unsupportedEncodingException) { + unsupportedEncodingException.printStackTrace(); + } } - sql = " select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" + - " t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" + + String requestname = ""; + String workflowname = ""; + String nodeName = "" ; + + sql = " select t1.requestname,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 " + - " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + " and t1.requestid = " + requestid; rs.execute(sql); - while (rs.next()) { - String title = Util.null2String(rs.getString("requestname")); - String workflowid = Util.null2String(rs.getString("workflowid")); - String workflowname = getWorkflowname(workflowid); -// title = getShortMessageTitle(title); - String creator = Util.null2String(rs.getString("loginid")); - String taskCode = Util.null2String(rs.getString("taskcode")); + if (rs.next()) { + requestname = Util.null2String(rs.getString("requestname")); + workflowname = Util.null2String(rs.getString("workflowname")); + } + + sql = " select nodename from workflow_nodebase wn where wn.id = "+nodeid ; + rs.execute(sql); + if (rs.next()) { + nodeName = Util.null2String(rs.getString("nodename")); + } + + JSONObject requestObject = new JSONObject(); + requestObject.put("center", center); + requestObject.put("taskCode", requestid); + requestObject.put("nodeId", nodeid); + requestObject.put("ticketType", workflowname); + requestObject.put("title", requestname); + requestObject.put("creator", workcode); + requestObject.put("processStaff", workcode); + requestObject.put("processTime", processTime); + requestObject.put("isRecall", isRecall); + requestObject.put("actionType", actionType); + requestObject.put("urlPC", urlPc); + requestObject.put("urlApp", urlApp); + requestObject.put("urlDing",urlDing); + + String userids = user.getUID()+"" ; + String auth = username + ":" + passwd; + bb.writeLog("done requestObject:" + requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth); + bb.writeLog("done msgdata:" + msgdata); + if(StringUtils.isNotEmpty(msgdata)) + { + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if(msgObject.containsKey("resultCode")){ + String resultCode = msgObject.getString("resultCode"); + if(!"0".equals(resultCode)){ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodeName,userids,requestObject.toJSONString(),resultCode,resultmsg); + } + } + } + } catch (Exception e) { + bb.writeLog("done Exception"); + bb.writeLog(e.getMessage()); + } + } + + public void sendPortalDoneData2(String requestid,JSONArray dataJson, String portal_doneurl, String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String bpm_app_requesturl) { + BaseBean bb = new BaseBean(); + bb.writeLog("sendPortalDoneData2"); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + RecordSet rs = new RecordSet(); + + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + + try { + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String isRecall = "1"; + String actionType = "0"; + + String center = PropBean.getUfPropValue("center"); + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+bpm_app_requesturl+requestid; + String urlApp = replace+bpm_app_requesturl+requestid; + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + try { + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } catch (UnsupportedEncodingException unsupportedEncodingException) { + unsupportedEncodingException.printStackTrace(); + } + } + + String requestname = ""; + String workflowname = ""; + String sql =" select t1.requestname,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = " + requestid; + rs.execute(sql); + if (rs.next()) { + requestname = Util.null2String(rs.getString("requestname")); + workflowname = Util.null2String(rs.getString("workflowname")); + } + + for(int i=0;i 20) { - messageTitle = messageTitle.substring(0, 17) + "..."; - } - return messageTitle; - } - - private String getWorkflowname(String id) { - RecordSet rs = new RecordSet(); - String name = ""; - rs.executeQuery("select workflowname from workflow_base where id = ?", id); - while (rs.next()) { - name = Util.null2String(rs.getString("workflowname")); - } - return name; - } - - } diff --git a/src/com/customization/dito/sendtodo/SendPortalErrorUtil.java b/src/com/customization/dito/sendtodo/SendPortalErrorUtil.java index 8a2a22df..754612bf 100644 --- a/src/com/customization/dito/sendtodo/SendPortalErrorUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalErrorUtil.java @@ -1,17 +1,95 @@ package com.customization.dito.sendtodo; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; import weaver.general.BaseBean; +import weaver.general.Util; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; + public class SendPortalErrorUtil { - public void doCreateSendPortalTodoErrorInfo(){ + public void doRecordPortalErrorInfo(String lcid,String jdid,String jdmc,String ryid,String requestobject,String resultcode,String resultmsg){ BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); bb.writeLog("doCreateSendPortalTodoErrorInfo"); - } + String uf_table = "uf_portal_error" ; - public void doCreateSendPortalDoneErrorInfo(){ - BaseBean bb = new BaseBean(); - bb.writeLog("doCreateSendPortalDoneErrorInfo"); + ModeRightInfo modeRightInfo = new ModeRightInfo(); + modeRightInfo.setNewRight(true); + + String formmodeid = "" ; + String sql =" select k.id from modeinfo k \n" + + " inner join workflow_bill l on formid = l.id\n" + + " where l.tablename = '"+uf_table+"' " ; + rs.execute(sql); + if(rs.next()){ + formmodeid = Util.null2String(rs.getString("id")); + } + String modedatacreater = "1"; + SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式 + SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");//设置日期格式 + String modedatacreatedate = sdfDate.format(new Date()); + String modedatacreatetime = sdfTime.format(new Date()); + String modedatacreatertype = "0"; + String uuid = UUID.randomUUID().toString(); + + + Map mainMap = new HashMap(); + mainMap.put("lcid",lcid); + mainMap.put("jdid",jdid); + mainMap.put("jdmc",jdmc); + mainMap.put("ryid",ryid); + mainMap.put("requestobject",requestobject); + mainMap.put("resultcode",resultcode); + mainMap.put("resultmsg",resultmsg); + mainMap.put("formmodeid",formmodeid); + mainMap.put("modedatacreater",modedatacreater); + mainMap.put("modedatacreatertype",modedatacreatertype); + mainMap.put("modedatacreatedate",modedatacreatedate); + mainMap.put("modedatacreatetime",modedatacreatetime); + mainMap.put("uuid",uuid); + + String tablename = "" ; + String tablenvalue = "" ; + for (Map.Entry entry : mainMap.entrySet()) + { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tablename += tablename==""? fieldname :","+fieldname ; + tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ; + } + bb.writeLog("tablename:"+tablename); + bb.writeLog("tablenvalue:"+tablenvalue); + + + if(tablename !="" && tablenvalue !="") + { + sql = " insert into "+uf_table+"("+tablename+") values ("+ tablenvalue +")"; + bb.writeLog("sql:"+sql); + boolean boo = rs.execute(sql); + if(boo) + { + String dataid = "" ; + sql = " select * from "+uf_table+" where uuid='"+uuid+"' " ; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dataid = Util.null2String(rs.getString("id")); + } + bb.writeLog("dataid:"+dataid); + if(!"".equals(dataid)) + { + modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), Integer.parseInt(formmodeid), Integer.parseInt(dataid)); + } + } + } } } diff --git a/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java b/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java index 33321cfe..4cc5d471 100644 --- a/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java @@ -52,15 +52,15 @@ public class SendPortalToReadUtil { try { String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); JSONArray taskObjectList = new JSONArray(); - int u_userid = user.getUID(); - String lastname = user.getLastname(); +// int u_userid = user.getUID(); + 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 = '" + u_userid + "'"; - rs.executeQuery(sql); - while (rs.next()) { - workcode = Util.null2String(rs.getString("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 = '" + u_userid + "'"; +// rs.executeQuery(sql); +// while (rs.next()) { +// workcode = Util.null2String(rs.getString("loginid")); +// } String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; // String app_requestUrl = bpm_app_requesturl+requestid; @@ -77,13 +77,20 @@ public class SendPortalToReadUtil { urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); } - String requestname = ""; String workflowname = "" ; - sql =" select t1.requestname,t1.requestmark,t3.workflowname\n" + +// sql =" select t1.requestname,t1.requestmark,t3.workflowname\n" + +// " from workflow_requestbase t1\n" + +// " inner join workflow_base t3 on t1.workflowid = t3.id\n" + +// " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ +// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + +// " and t1.requestid = "+requestid ; + + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname "+ " from workflow_requestbase t1\n" + " 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 ; @@ -92,6 +99,7 @@ public class SendPortalToReadUtil { if (rs.next()){ workflowname = Util.null2String(rs.getString("workflowname")) ; requestname = Util.null2String(rs.getString("requestname")) ; + lastname = Util.null2String(rs.getString("lastname")) ; } requestObject.put("center",center); requestObject.put("title",requestname); @@ -105,7 +113,7 @@ public class SendPortalToReadUtil { requestObject.put("urlDing",urlDing); requestObject.put("ticketType",workflowname); requestObject.put("urlApp",urlApp); - requestObject.put("creator",workcode); + requestObject.put("creator",lastname); sql = " select t2.userid,h1.loginid,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+ " from workflow_requestbase t1\n" + @@ -155,6 +163,9 @@ public class SendPortalToReadUtil { String staffid = dataObject.getString("staffid"); String userid = dataObject.getString("userid"); + if("sysadmin".equals(creator)){ + creator = "Admin"; + } JSONObject taskObject = new JSONObject(); String objectCode = creator ; @@ -167,7 +178,6 @@ public class SendPortalToReadUtil { JSONArray taskArray = new JSONArray(); taskArray.add(taskObject); - requestObject.put("nodeName",nodename); requestObject.put("nodeId",nodeid); requestObject.put("taskCode",lcid+"_cs_"+nodeid+"_"+userid); @@ -200,7 +210,6 @@ public class SendPortalToReadUtil { String notificationSubject = templateMap.get("notificationSubject"); String notificationContent = templateMap.get("notificationContent"); - //sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); } @@ -243,15 +252,15 @@ public class SendPortalToReadUtil { try { - int u_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 = '" + u_userid + "'"; - rs.executeQuery(sql); - while (rs.next()) { - workcode = Util.null2String(rs.getString("loginid")); - } +// int u_userid = user.getUID(); + 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 = '" + u_userid + "'"; +// rs.executeQuery(sql); +// while (rs.next()) { +// workcode = Util.null2String(rs.getString("loginid")); +// } int count = 0 ; String countSql =" select t2.userid \n" + @@ -261,7 +270,7 @@ public class SendPortalToReadUtil { " 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.requestid = "+requestid+ " and t2.nodeid = " + noideid ; bb.writeLog("sendToReadDataByNode--countSql:"+countSql); @@ -295,16 +304,26 @@ public class SendPortalToReadUtil { String requestname = ""; JSONArray taskObjectList = new JSONArray(); - sql =" select t1.workflowid,t1.requestname,t1.requestmark,t3.workflowname\n" + +// sql =" select t1.workflowid,t1.requestname,t1.requestmark,t3.workflowname\n" + +// " from workflow_requestbase t1\n" + +// " inner join workflow_base t3 on t1.workflowid = t3.id\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 "+ " 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; + " and t1.requestid = "+requestid ; + bb.writeLog("SendPortalToReadUtil-sendToReadDataByNode--sql:" + sql); rs.executeQuery(sql); if (rs.next()) { workflowname = Util.null2String(rs.getString("workflowname")); requestname = Util.null2String(rs.getString("requestname")); + lastname = Util.null2String(rs.getString("lastname")) ; } requestObject.put("center", center); @@ -319,7 +338,7 @@ public class SendPortalToReadUtil { requestObject.put("urlPc", urlPc); requestObject.put("urlDing", urlDing); requestObject.put("ticketType", workflowname); - requestObject.put("creator",workcode); + requestObject.put("creator",lastname); requestObject.put("urlApp",urlApp); sql = " select t2.userid,h1.loginid,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+ @@ -334,7 +353,6 @@ public class SendPortalToReadUtil { " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid ; - bb.writeLog("SendPortalToReadUtil-sendToReadDataByNode--sql:" + sql); rs.executeQuery(sql); while (rs.next()) { @@ -389,7 +407,6 @@ public class SendPortalToReadUtil { requestObject.put("taskCode",lcid+"_cs_"+nodeid+"_"+userid); requestObject.put("taskObjectList",taskArray); - String auth = username + ":" + passwd; bb.writeLog("SendPortalToReadUtil--requestObject:" + requestObject.toJSONString()); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth); diff --git a/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java b/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java index 201ede99..2d71232d 100644 --- a/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java @@ -53,27 +53,32 @@ public class SendPortalTodoUtil { Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); JSONObject requestObject = new JSONObject(); - String lastname = user.getLastname(); + try { String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String lastname = ""; + String nodeId = ""; + String nodeName = "" ; + String userids = "" ; int userid = user.getUID(); - String sql =" select t1.requestname,h1.loginid,d1.nodename,h1.email,c1."+cus_staff+" as staffid,t3.workflowname "+ - " from workflow_requestbase t1\n" + - " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + - " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ - " 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" + - " where t2.userid in ("+userid+") \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 t2.islasttimes = 1 \n" + - " and (t2.isprocessing = '' or t2.isprocessing is null) \n" + - " and t2.requestid = "+requestid ; + String sql =" select t1.requestname,h1.loginid,d1.nodename,h1.email,c1."+cus_staff+" as staffid,t3.workflowname,h2.lastname,t2.userid "+ + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " 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" + + " 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 t2.islasttimes = 1 \n" + + " and (t2.isprocessing = '' or t2.isprocessing is null) \n" + + " and t2.requestid = "+requestid ; bb.writeLog("sendTodoDataByCreater-sql:"+sql); rs.executeQuery(sql); @@ -81,9 +86,11 @@ public class SendPortalTodoUtil { String workflowname = Util.null2String(rs.getString("workflowname")) ; requestname = Util.null2String(rs.getString("requestname")) ; - String nodeId = Util.null2String(rs.getString("nodeid")) ; - String nodeName = Util.null2String(rs.getString("nodeName")) ; + nodeId = Util.null2String(rs.getString("nodeid")) ; + nodeName = Util.null2String(rs.getString("nodeName")) ; String loginid = Util.null2String(rs.getString("loginid")) ; + lastname = Util.null2String(rs.getString("lastname")) ; + userids = Util.null2String(rs.getString("userid")) ; String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; String replace = bpm_app_workflowurl.replace("/bpm", ""); @@ -104,7 +111,7 @@ public class SendPortalTodoUtil { requestObject.put("center",center); requestObject.put("title",requestname); - requestObject.put("creator",loginid); + requestObject.put("creator",lastname); requestObject.put("taskCode",requestid); requestObject.put("nodeId",nodeId); requestObject.put("taskType",taskType); @@ -122,6 +129,10 @@ public class SendPortalTodoUtil { JSONArray taskObjectList = new JSONArray(); JSONObject taskObject = new JSONObject(); + if("sysadmin".equals(loginid)){ + loginid = "Admin"; + } + String objectCode = loginid ; String operatorCode = loginid ; @@ -169,7 +180,8 @@ public class SendPortalTodoUtil { } }else{ - sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,nodeName,userids,requestObject.toJSONString(),resultCode,resultmsg); } } } @@ -189,6 +201,8 @@ public class SendPortalTodoUtil { HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); SendMailUtil sendMailUtil = new SendMailUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); RecordSet rs = new RecordSet(); @@ -210,14 +224,15 @@ public class SendPortalTodoUtil { String objectType = "0"; 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 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"); @@ -227,12 +242,13 @@ public class SendPortalTodoUtil { String nodeName = ""; String workflowname = "" ; - sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname"+ - " from workflow_requestbase t1\n" + - " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ - " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t1.requestid = "+requestid ; + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname"+ + " from workflow_requestbase t1\n" + + " 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); rs.executeQuery(sql); @@ -241,6 +257,7 @@ public class SendPortalTodoUtil { nodeId = Util.null2String(rs.getString("nodeid")) ; nodeName = Util.null2String(rs.getString("nodeName")) ; workflowname = Util.null2String(rs.getString("workflowname")) ; + lastname = Util.null2String(rs.getString("lastname")) ; } String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; @@ -262,7 +279,7 @@ public class SendPortalTodoUtil { JSONObject requestObject = new JSONObject(); requestObject.put("center",center); requestObject.put("title",requestname); - requestObject.put("creator",workcode); + requestObject.put("creator",lastname); requestObject.put("taskCode",requestid); requestObject.put("nodeId",nodeId); requestObject.put("taskType",taskType); @@ -295,6 +312,12 @@ public class SendPortalTodoUtil { String loginid = 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 ; + + if("sysadmin".equals(loginid)){ + loginid = "Admin"; + } String objectCode = loginid ; String operatorCode = loginid ; @@ -340,6 +363,9 @@ public class SendPortalTodoUtil { sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); } + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,nodeName,userids,requestObject.toJSONString(),resultCode,resultmsg); } } } @@ -377,27 +403,31 @@ public class SendPortalTodoUtil { String emailArray = ""; Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); 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")); - } +// int userid = user.getUID(); + String lastname = ""; + String nodeId = "" ; + String nodeName = "" ; + String userids = "" ; + +// 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"); 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 ; + " 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()){ @@ -414,17 +444,22 @@ public class SendPortalTodoUtil { String objectAction = "1" ; String objectType = "0"; String objectId = "" ; - String nodeId = ""; - String nodeName = "" ; 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 ; +// sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + +// " from workflow_requestbase t1\n" + +// " inner join workflow_base t3 on t1.workflowid = t3.id\n" + +// " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ +// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + +// " and t1.requestid = "+requestid ; + String sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname "+ + " from workflow_requestbase t1\n" + + " 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); @@ -434,6 +469,7 @@ public class SendPortalTodoUtil { workflowname = Util.null2String(rs.getString("workflowname")) ; nodeId = Util.null2String(rs.getString("nodeid")) ; nodeName = Util.null2String(rs.getString("nodeName")) ; + lastname = Util.null2String(rs.getString("lastname")) ; } String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; @@ -454,7 +490,7 @@ public class SendPortalTodoUtil { requestObject.put("center",center); requestObject.put("title",requestname); - requestObject.put("creator",workcode); + requestObject.put("creator",lastname); requestObject.put("taskCode",requestid); requestObject.put("nodeId",nodeId); requestObject.put("taskType",taskType); @@ -469,8 +505,13 @@ public class SendPortalTodoUtil { requestObject.put("nodeName",nodeName); requestObject.put("ticketType",workflowname); - String objectCode = user.getLoginid() ; - String operatorCode = user.getLoginid() ; + String loginid = user.getLoginid() ; + if("sysadmin".equals(loginid)){ + loginid = "Admin"; + } + + String objectCode = loginid ; + String operatorCode = loginid ; JSONObject taskObject = new JSONObject(); taskObject.put("objectAction",objectAction); taskObject.put("objectType",objectType); @@ -480,6 +521,8 @@ public class SendPortalTodoUtil { taskObjectList.add(taskObject); requestObject.put("taskObjectList",taskObjectList); + userids = user.getUID()+""; + }else{ String actionType = "2" ; String objectAction = "0" ; @@ -487,14 +530,21 @@ public class SendPortalTodoUtil { JSONArray taskObjectList = new JSONArray(); - String workflowname = "" ; - String nodeId = "" ; - String nodeName = "" ; - sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + +// sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + +// " from workflow_requestbase t1\n" + +// " inner join workflow_base t3 on t1.workflowid = t3.id\n" + +// " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ +// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + +// " and t1.requestid = "+requestid ; + + + String sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname "+ " from workflow_requestbase t1\n" + " 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 ; @@ -506,6 +556,7 @@ public class SendPortalTodoUtil { workflowname = Util.null2String(rs.getString("workflowname")) ; nodeId = Util.null2String(rs.getString("nodeid")) ; nodeName = Util.null2String(rs.getString("nodeName")) ; + lastname = Util.null2String(rs.getString("lastname")) ; } String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; @@ -522,7 +573,7 @@ public class SendPortalTodoUtil { requestObject.put("center",center); requestObject.put("title",requestname); - requestObject.put("creator",workcode); + requestObject.put("creator",lastname); requestObject.put("taskCode",requestid); requestObject.put("nodeId",nodeId); requestObject.put("taskType",taskType); @@ -546,7 +597,7 @@ public class SendPortalTodoUtil { " 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; + " and t2.requestid = "+requestid; bb.writeLog("sendTodoDataByNode--sql:"+sql); rs.executeQuery(sql); @@ -554,6 +605,13 @@ 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 ; + + if("sysadmin".equals(usercode)){ + usercode = "Admin"; + } + String objectCode = usercode ; String operatorCode = usercode ; @@ -600,7 +658,8 @@ public class SendPortalTodoUtil { } }else{ - sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,nodeName,userids,requestObject.toJSONString(),resultCode,resultmsg); } } } @@ -639,14 +698,14 @@ public class SendPortalTodoUtil { String scope = "HrmCustomFieldByInfoType" ; try { - int userid = user.getUID(); +// 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 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"); @@ -657,14 +716,24 @@ public class SendPortalTodoUtil { String requestname = ""; String nodeId = ""; String nodeName = "" ; + String userids = "" ; + +// 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 ; - sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + String sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname "+ " 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("sendTodoDataByReject--sql:"+sql); rs.executeQuery(sql); if (rs.next()){ @@ -672,6 +741,7 @@ public class SendPortalTodoUtil { requestname = Util.null2String(rs.getString("requestname")) ; nodeId = Util.null2String(rs.getString("nodeid")) ; nodeName = Util.null2String(rs.getString("nodeName")) ; + lastname = Util.null2String(rs.getString("lastname")) ; } String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; @@ -693,7 +763,7 @@ public class SendPortalTodoUtil { JSONObject requestObject = new JSONObject(); requestObject.put("center",center); requestObject.put("title",requestname); - requestObject.put("creator",workcode); + requestObject.put("creator",lastname); requestObject.put("taskCode",requestid); requestObject.put("nodeId",nodeId); requestObject.put("taskType",taskType); @@ -725,8 +795,15 @@ 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 ; + JSONObject taskObject = new JSONObject(); + if("sysadmin".equals(usercode)){ + usercode = "Admin"; + } + String objectCode = usercode ; String operatorCode = usercode ; @@ -771,7 +848,8 @@ public class SendPortalTodoUtil { sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); } }else{ - sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,nodeName,userids,requestObject.toJSONString(),resultCode,resultmsg); } } } diff --git a/src/com/customization/dito/sendtodo/SendPortalWithRawRunnable.java b/src/com/customization/dito/sendtodo/SendPortalWithRawRunnable.java index 3fca6619..9d534e10 100644 --- a/src/com/customization/dito/sendtodo/SendPortalWithRawRunnable.java +++ b/src/com/customization/dito/sendtodo/SendPortalWithRawRunnable.java @@ -58,20 +58,18 @@ public class SendPortalWithRawRunnable implements Runnable{ */ public void sendToReadDataByNode(String requestid,String recallnodeid,User user,String username,String passwd,String center,String portal_todourl,String bpm_workflowurl,String bpm_app_workflowurl,String bpm_app_requesturl){ HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); RecordSet rs = new RecordSet(); BaseBean bb = new BaseBean(); - bb.writeLog("SendPortalQithRawRunnable-sendToReadDataByNode"); + bb.writeLog("SendPortalWithRawRunnable-sendToReadDataByNode"); - String actionType = "1"; - String objectAction = "1"; - String objectType = "0"; + String actionType = "3"; String terminal = "1" ; String taskType = "1"; try { - int u_userid = user.getUID(); String workcode = ""; String sql = " select * from (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) w where w.id = '" + u_userid + "'"; @@ -82,26 +80,32 @@ public class SendPortalWithRawRunnable implements Runnable{ String requestname = "" ; String workflowname = "" ; - String nodeId = "" ; - String nodeName = "" ; - sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + + String lastname = "" ; +// 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 ; + + sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname "+ " 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--sql2:"+sql); + bb.writeLog("SendPortalWithRawRunnable--sql2:"+sql); rs.executeQuery(sql); if (rs.next()){ requestname = Util.null2String(rs.getString("requestname")) ; workflowname = Util.null2String(rs.getString("workflowname")) ; - nodeId = Util.null2String(rs.getString("nodeid")) ; - nodeName = Util.null2String(rs.getString("nodeName")) ; + lastname = Util.null2String(rs.getString("lastname")) ; } - String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; String replace = bpm_app_workflowurl.replace("/bpm", ""); @@ -112,71 +116,38 @@ public class SendPortalWithRawRunnable implements Runnable{ urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); } - - String recall_id = "" ; - String recall_userid = ""; - String recall_nodeid = ""; - String recall_receivedate = ""; - String recall_receivetime = ""; - rs.executeQuery("select * from workflow_currentoperator where requestid = ? and userid = ? and isremark = '2' and preisremark in ('0','2','7') and nodeid = ? order by id desc", requestid, user.getUID(),recallnodeid); + String currentid = "" ; + rs.executeQuery(" select id from workflow_currentoperator where requestid = ? and userid = ? and isremark = '2' and preisremark in ('0','2','7') and nodeid = ? order by id desc", requestid, u_userid,recallnodeid); if (rs.next()) { - recall_id = rs.getString("id"); - recall_userid = rs.getString("userid"); - recall_nodeid = rs.getString("nodeid"); - recall_receivedate = rs.getString("receivedate"); - recall_receivetime = rs.getString("receivetime"); + currentid = rs.getString("id"); } - bb.writeLog("recall_id:"+recall_id); - bb.writeLog("recall_userid:"+recall_userid); - bb.writeLog("recall_receivedate:"+recall_receivedate); - bb.writeLog("recall_receivetime:"+recall_receivetime); - - String withdrawNodes = ""; - sql = "select distinct nodeid from workflow_currentoperator where requestid = ?"; - rs.executeQuery(sql,requestid); - bb.writeLog("sql:"+sql); - while (rs.next()) { - withdrawNodes += StringUtils.isEmpty(withdrawNodes) ? rs.getString("nodeid") : ","+rs.getString("nodeid"); - } - bb.writeLog("withdrawNodes:"+withdrawNodes); - //需要撤回的节点(包含本节点),比如A-B-C,撤回到A,则此值为ABC. - String sql_temp = "select distinct nodeid from workflow_currentoperator where requestid = ? and nodeid in (" + withdrawNodes + ") and id >= ?"; - withdrawNodes = ""; - rs.executeQuery(sql_temp,new Object[]{requestid, recall_id}); - bb.writeLog("sql_temp:"+sql_temp); - while(rs.next()){ - withdrawNodes += StringUtils.isEmpty(withdrawNodes) ? rs.getString("nodeid") : ","+rs.getString("nodeid"); - } - bb.writeLog("withdrawNodes:"+withdrawNodes); + bb.writeLog("SendPortalWithRawRunnable--currentid:"+currentid); JSONArray taskObjectList = new JSONArray(); - sql = " select t2.userid,h1.loginid,t1.requestid,t2.nodeid "+ + sql = " select t2.userid,h1.loginid,t1.requestid,t2.nodeid,d1.nodename "+ " from workflow_requestbase t1\n" + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " left join workflow_nodebase d1 on d1.id = t2.nodeid "+ " 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 t1.requestid = ? " + - " and t2.nodeid in (" + withdrawNodes + ") " + " and t2.nodeid != ? " + " and t2.userid != ? " + - " and t2.receivedate >= ? " + - " and t2.receivetime >= ? " + - " and t2.operatetype = 4 " ; + " and ((t2.isremark = 8 and t2.preisremark = 8) or ( t2.isremark = 9 and t2.preisremark = 9 ))" + + " and t2.id > "+currentid ; - bb.writeLog("sendTodoDataByNode--sql:"+sql); - rs.executeQuery(sql, requestid,recall_nodeid , recall_userid, recall_receivedate, recall_receivetime); + bb.writeLog("SendPortalWithRawRunnable--sql:"+sql); + rs.executeQuery(sql, requestid,recallnodeid , u_userid); while (rs.next()) { String lcid = Util.null2String(rs.getString("requestid")) ; String nodeid = Util.null2String(rs.getString("nodeid")) ; String nodename = Util.null2String(rs.getString("nodename")) ; - String creator = Util.null2String(rs.getString("loginid")) ; String userid = Util.null2String(rs.getString("userid")) ; JSONObject taskObject = new JSONObject(); taskObject.put("lcid",lcid); taskObject.put("nodeid",nodeid); taskObject.put("nodename",nodename); - taskObject.put("creator",creator); taskObject.put("userid",userid); taskObjectList.add(taskObject); } @@ -187,27 +158,10 @@ public class SendPortalWithRawRunnable implements Runnable{ String lcid = dataObject.getString("lcid"); String nodeid = dataObject.getString("nodeid"); String nodename = dataObject.getString("nodename"); - String creator = dataObject.getString("creator"); String userid = dataObject.getString("userid"); - if("sysadmin".equals(creator)){ - creator = "Admin"; - } - - JSONObject taskObject = new JSONObject(); - String objectCode = creator ; - String operatorCode = creator ; - - taskObject.put("objectAction",objectAction); - taskObject.put("objectType",objectType); - taskObject.put("objectCode",objectCode); - taskObject.put("objectId",""); - taskObject.put("operatorCode",operatorCode); - JSONArray taskArray = new JSONArray(); - taskArray.add(taskObject); - JSONObject requestObject = new JSONObject(); - requestObject.put("center", center); + requestObject.put("center", lastname); requestObject.put("title", requestname); requestObject.put("taskType", taskType); requestObject.put("actionType", actionType); @@ -220,21 +174,21 @@ public class SendPortalWithRawRunnable implements Runnable{ requestObject.put("ticketType", workflowname); requestObject.put("creator",workcode); requestObject.put("urlApp",urlApp); - requestObject.put("nodeName",nodename); requestObject.put("nodeId",nodeid); requestObject.put("taskCode",lcid+"_cs_"+nodeid+"_"+userid); - requestObject.put("taskObjectList",taskArray); + requestObject.put("taskObjectList",new JSONArray()); String auth = username + ":" + passwd; - bb.writeLog("SendPortalToReadUtil--requestObject:" + requestObject.toJSONString()); + bb.writeLog("SendPortalWithRawRunnable-read-requestObject:" + requestObject.toJSONString()); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth); - bb.writeLog("SendPortalToReadUtil-msgdata:" + msgdata); + bb.writeLog("SendPortalWithRawRunnable-msgdata:" + msgdata); if (!"".equals(msgdata)) { JSONObject msgObject = JSONObject.parseObject(msgdata); if (msgObject.containsKey("resultCode")) { String resultCode = msgObject.getString("resultCode"); - if ("0".equals(resultCode)) { - + if(!"0".equals(resultCode)){ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg); } } } @@ -271,7 +225,7 @@ public class SendPortalWithRawRunnable implements Runnable{ RecordSet rs = new RecordSet(); BaseBean bb = new BaseBean(); - bb.writeLog("SendPortalQithRawRunnable--sendTodoDataByNode"); + bb.writeLog("SendPortalWithRawRunnable--sendTodoDataByNode"); String terminal = "1" ; String taskType = "0"; @@ -299,21 +253,29 @@ public class SendPortalWithRawRunnable implements Runnable{ urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); } - bb.writeLog("urlDing", urlDing); String requestname = "" ; String workflowname = "" ; String nodeId = "" ; String nodeName = "" ; - sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + String lastname = "" ; +// 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 ; + + sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname "+ " 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--sql2:"+sql); + bb.writeLog("SendPortalWithRawRunnable--sql2:"+sql); rs.executeQuery(sql); if (rs.next()){ @@ -321,6 +283,7 @@ public class SendPortalWithRawRunnable implements Runnable{ workflowname = Util.null2String(rs.getString("workflowname")) ; nodeId = Util.null2String(rs.getString("nodeid")) ; nodeName = Util.null2String(rs.getString("nodeName")) ; + lastname = Util.null2String(rs.getString("lastname")) ; } @@ -361,7 +324,6 @@ public class SendPortalWithRawRunnable implements Runnable{ // } // bb.writeLog("withdrawNodes:"+withdrawNodes); // -// // sql = " select t2.userid,h1.loginid,h1.email "+ // " from workflow_requestbase t1\n" + // " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + @@ -382,15 +344,12 @@ public class SendPortalWithRawRunnable implements Runnable{ // String usercode = Util.null2String(rs.getString("loginid")) ; // String objectCode = usercode ; // String operatorCode = usercode ; -// -// // } - requestObject.put("center",center); requestObject.put("title",requestname); - requestObject.put("creator",workcode); + requestObject.put("creator",lastname); requestObject.put("taskCode",requestid); requestObject.put("nodeId",nodeId); requestObject.put("taskType",taskType); @@ -410,6 +369,11 @@ public class SendPortalWithRawRunnable implements Runnable{ JSONObject taskObject = new JSONObject(); taskObject.put("objectAction",objectAction); taskObject.put("objectType",objectType); + + if("sysadmin".equals(workcode)){ + workcode = "Admin"; + } + taskObject.put("objectCode",workcode); taskObject.put("objectId",""); taskObject.put("operatorCode",workcode); @@ -417,19 +381,20 @@ public class SendPortalWithRawRunnable implements Runnable{ requestObject.put("taskObjectList",taskObjectList); + String userids = user.getUID()+""; + String auth = username + ":" + passwd; - bb.writeLog("sendTodoDataByNode---requestObject:"+requestObject.toJSONString()); + bb.writeLog("SendPortalWithRawRunnable-todo-requestObject:"+requestObject.toJSONString()); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); - bb.writeLog("msgdata:"+msgdata); + bb.writeLog("SendPortalWithRawRunnable--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)){ - - }else{ - sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + if(!"0".equals(resultCode)){ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,nodeName,userids,requestObject.toJSONString(),resultCode,resultmsg); } } }