From 32233b98eef9815e273f68d43eb0b651321b1442 Mon Sep 17 00:00:00 2001 From: shilei <798989044@qq.com> Date: Wed, 28 Feb 2024 09:34:50 +0800 Subject: [PATCH] =?UTF-8?q?#EC=5FHJ156#=20=E5=A4=87=E6=A1=88=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dito/sendtodo/SendPortalErrorUtil.java | 91 +++ .../dito/sendtodo/SendPortalForwardCmd.java | 62 +- .../dito/sendtodo/SendPortalToReadUtil.java | 2 +- .../dito/sendtodo/SendPortalTodoCmd.java | 167 +++-- .../dito/sendtodo/SendPortalTodoUtil.java | 692 +++++++++++++----- .../sendtodo/SendPortalWithAddTodoCmd.java | 2 +- .../agent/SendPortalToReadByAgentUtil.java | 2 +- .../agent/SendPortalTodoByAgentUtil.java | 9 +- .../dito/reqremark/cmd/RequestRemarkCmd.java | 113 ++- .../workflow/cmd/agent/AddAgentSaveCmd.java | 19 +- .../workflow/cmd/agent/TakeBackAgentCmd.java | 2 +- .../dito/monitor/SendPortalMonitorUtil.java | 423 ++++++++++- .../dito/mq/HrmRocketmqRunnable.java | 183 +++++ .../interfaces/dito/mq/HrmRocketmqUtil.java | 166 ++++- .../interfaces/dito/mq/RocketmqUtil.java | 352 +++++---- .../SendPortalOverTimeSubmitUtil.java | 103 ++- .../dito/robot/SendPortalRobotSubmitUtil.java | 4 +- 17 files changed, 1846 insertions(+), 546 deletions(-) create mode 100644 src/weaver/interfaces/dito/mq/HrmRocketmqRunnable.java diff --git a/src/com/customization/dito/sendtodo/SendPortalErrorUtil.java b/src/com/customization/dito/sendtodo/SendPortalErrorUtil.java index bcad7695..b4cb2c38 100644 --- a/src/com/customization/dito/sendtodo/SendPortalErrorUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalErrorUtil.java @@ -243,6 +243,97 @@ public class SendPortalErrorUtil { modeRightInfo.editModeDataShare(1, Integer.parseInt(formmodeid), Integer.parseInt(dataid)); } } + + } + + public void doRecordPortalErrorInfo4Phase2Optimize(String lcid,String jdid,String jdmc,String czry,String requestobject,String resultcode,String resultmsg,String zhjkbs,String jsry,String notes){ + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + bb.writeLog("doCreateSendPortalTodoErrorInfo"); + String uf_table = "uf_portal_error" ; + + ModeRightInfo modeRightInfo = new ModeRightInfo(); + modeRightInfo.setNewRight(true); + + if(StringUtils.isNotEmpty(requestobject)){ + requestobject = requestobject.replace("\"","\\\""); + } + 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("lcxz",lcid); + mainMap.put("lcid",lcid); + mainMap.put("jdid",jdid); + mainMap.put("jdmc",jdmc); + if(StringUtils.isNotBlank(czry)){ + mainMap.put("ryid",czry); + } + + if(StringUtils.isNotBlank(jsry)){ + mainMap.put("jsry",jsry); + } + + 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); + mainMap.put("zhjkbs",zhjkbs); + mainMap.put("notes",notes); + + String tablename = "" ; + String tablenvalue = "" ; + for (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/SendPortalForwardCmd.java b/src/com/customization/dito/sendtodo/SendPortalForwardCmd.java index a031fdcc..737bb146 100644 --- a/src/com/customization/dito/sendtodo/SendPortalForwardCmd.java +++ b/src/com/customization/dito/sendtodo/SendPortalForwardCmd.java @@ -74,10 +74,7 @@ public class SendPortalForwardCmd { String nodeId = ""; String nodeName = ""; JSONObject requestObject = new JSONObject(); - 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; + String msgdata = ""; String requestname = ""; @@ -86,6 +83,12 @@ public class SendPortalForwardCmd { String loginid = ""; String emailArray = ""; for(String userid : resourceids){ + + 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; + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); try { sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname,h2.loginid " + @@ -139,7 +142,7 @@ public class SendPortalForwardCmd { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = " + requestid +" and t2.userid ="+ userid; @@ -313,7 +316,7 @@ public class SendPortalForwardCmd { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5', '7','11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = " + requestid; @@ -391,36 +394,34 @@ public class SendPortalForwardCmd { //流程归档转发处理 public void delTodoAddDoneSendPortal(String requestid,int currentnodeid,User user){ bb.writeLog("======== SendPortalForwardCmd delTodoAddDoneSendPortal ========================="+requestid); - String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); - String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl"); - String portal_todourl = PropBean.getUfPropValue("portal_todourl"); + String username = PropBean.getUfPropValue("username"); String passwd = PropBean.getUfPropValue("passwd"); String center = PropBean.getUfPropValue("center"); - String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl"); - String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); - String portal_doneurl = PropBean.getUfPropValue("portal_doneurl"); - String cus_staff = PropBean.getUfPropValue("cus_staff") ; - String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + + + String zhjkbs = "com.customization.dito.sendtodo.SendPortalForwardCmd.delTodoAddDoneSendPortal"; + RecordSet rs = new RecordSet(); try { - String zhjkbs = "com.customization.dito.sendtodo.SendPortalForwardCmd.delTodoAddDoneSendPortal"; - String sql = ""; - String workflowname = ""; - String nodeId = ""; - String nodeName = ""; - JSONObject requestObject = new JSONObject(); + + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + + String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl"); + + String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); + String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl"); 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; - String msgdata = ""; String requestname = ""; - String lastname = ""; String loginid = ""; + String workflowname = ""; + String nodeName = ""; - sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname,h2.loginid " + + String sql = " select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname,h2.loginid " + " from workflow_requestbase t1\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid " + @@ -428,13 +429,12 @@ public class SendPortalForwardCmd { " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + " and t1.requestid = " + requestid; - bb.writeLog("SendPortalWithAddTodoCmd delTodoAddDoneSendPortal --sql:" + sql); + bb.writeLog("SendPortalForwardCmd-delTodoAddDoneSendPortal --sql:" + 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") + user.getUID()); nodeName = Util.null2String(rs.getString("nodeName")); loginid = Util.null2String(rs.getString("loginid")); } @@ -472,22 +472,26 @@ public class SendPortalForwardCmd { taskObject.put("objectId", rs.getString("staffid")); taskObject.put("operatorCode", user.getLoginid()); jsonObject.put("taskObjectList", list); - bb.writeLog("SendPortalWithAddDoneCmd--delTodoAddDoneSendPortal--deltodo--requestObject:" + jsonObject.toJSONString()); + bb.writeLog("SendPortalWithAddDoneCmd--delTodoAddDoneSendPortal-requestObject:" + jsonObject.toJSONString()); String auth = username + ":" + passwd; - msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl, jsonObject.toJSONString(), auth); + String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl, jsonObject.toJSONString(), auth); bb.writeLog("SendPortalWithAddDoneCmd-delTodoAddDoneSendPortal-msgdata:" + msgdata); if (StringUtils.isNotEmpty(msgdata)) { JSONObject msgObject = JSONObject.parseObject(msgdata); bb.writeLog("SendPortalWithAddDoneCmd--delTodoAddDoneSendPortal--msgObject:" + msgObject.toJSONString()); if (msgObject.containsKey("resultCode")) { String resultCode = msgObject.getString("resultCode"); - if (!"0".equals(resultCode)) { + if ("0".equals(resultCode)) { + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, user.getUID() + "", nodeName, user.getUID() + "", jsonObject.toJSONString(), resultCode, "", zhjkbs,""); + }else{ String resultmsg = msgObject.getString("resultMsg"); sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, user.getUID() + "", nodeName, user.getUID() + "", jsonObject.toJSONString(), resultCode, resultmsg, zhjkbs,""); + } } } - + }else{ + bb.writeLog("delTodoAddDoneSendPortal:"+requestid+"的流程未找到转发的流程"); } // // 增加已办 diff --git a/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java b/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java index 6000e898..9332a862 100644 --- a/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java @@ -263,7 +263,7 @@ public class SendPortalToReadUtil { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5', '7', '11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid+ diff --git a/src/com/customization/dito/sendtodo/SendPortalTodoCmd.java b/src/com/customization/dito/sendtodo/SendPortalTodoCmd.java index 3eb9eaef..d8d8289e 100644 --- a/src/com/customization/dito/sendtodo/SendPortalTodoCmd.java +++ b/src/com/customization/dito/sendtodo/SendPortalTodoCmd.java @@ -1,5 +1,6 @@ package com.customization.dito.sendtodo; +import weaver.conn.RecordSet; import weaver.interfaces.dito.constant.Constants; import com.customization.dito.sendtodo.agent.SendPortalToReadByAgentUtil; import com.customization.dito.sendtodo.agent.SendPortalTodoByAgentUtil; @@ -68,67 +69,133 @@ public class SendPortalTodoCmd extends AbstractCommandProxy> bb.writeLog("f_weaver_belongto_userid:"+f_weaver_belongto_userid); bb.writeLog("f_weaver_belongto_usertype:"+f_weaver_belongto_usertype); bb.writeLog("creater:"+creater); + bb.writeLog("agentType:"+agentType); + + int forwardcount = 0; + try{ + RecordSet rs = new RecordSet(); + String sql =" select t1.userid,t1.nodeid " + + " from workflow_currentoperator t1 " + + " where t1.isremark = 1 " + + " and t1.REQUESTID= " +requestid + + " and t1.USERID= " +userid ; + bb.writeLog("completeForwardRequest --sql:" + sql); + rs.executeQuery(sql); + while (rs.next()) { + forwardcount++ ; + } + }catch (Exception e){ + + } //参数回写 //执行标准的业务处理 Map result = nextExecute(targetCommand); - if(result.containsKey("data")){ - //对返回值做加工处理 - RequestOperationResultBean resultBean = (RequestOperationResultBean) result.get("data"); - String executeResult = resultBean.getType().name(); - - if("SUCCESS".equals(executeResult)){ - String new_requestid = Util.null2String(resultBean.getResultInfo().get("requestid")); - bb.writeLog("new_requestid:"+new_requestid); - - SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); - SendPortalToReadUtil sendPortalToReadUtil = new SendPortalToReadUtil(); - - String portal_todourl = Constants.portal_todourl; - String bpm_app_workflowurl = Constants.bpm_app_workflowurl; - String username = Constants.username; - String passwd = Constants.passwd; - String bpm_workflowurl = Constants.bpm_workflowurl; - String center = Constants.center; - String bpm_app_requesturl = Constants.bpm_app_requesturl; - - - if(Util.getIntValue(requestid) == -1 && "save".equals(src)){ - sendPortalTodoUtil.sendTodoDataByCreater(new_requestid,user, portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); - }else if(Util.getIntValue(requestid) == -1 && "submit".equals(src)){ - sendPortalTodoUtil.sendTodoDataByCreateNode(new_requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); - sendPortalToReadUtil.sendToReadDataByCreateNode(new_requestid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); - }else if(Util.getIntValue(requestid)> 0 && "submit".equals(src)){ - - /*** - * 空值:流程正常提交 - * 1:被代理人提交流程 - * 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); - } - }else if(Util.getIntValue(requestid)> 0 && "reject".equals(src)){ - sendPortalTodoUtil.sendTodoDataByReject(requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); - }else if(Util.getIntValue(requestid)> 0 && "intervenor".equals(src)){ - SendPortalMonitorUtil sendPortalMonitorUtil = new SendPortalMonitorUtil(); - sendPortalMonitorUtil.monitorIntervention(requestid,userid); + sendDate(result,requestid,agentType,src,nodeid,userid,f_weaver_belongto_userid,user,forwardcount); + + return result; + } + + + public void sendDate(Map result,String requestid,String agentType,String src,String nodeid,String userid,String f_weaver_belongto_userid,User user,int forwardcount){ + + BaseBean bb = new BaseBean(); + try{ + if(result.containsKey("data")){ + //对返回值做加工处理 + RequestOperationResultBean resultBean = (RequestOperationResultBean) result.get("data"); + String executeResult = resultBean.getType().name(); + bb.writeLog("executeResult:"+executeResult); + + Map resultMap = resultBean.getResultInfo(); + + for (Map.Entry entry : resultMap.entrySet()) { + System.out.println("resultMap---key= " + entry.getKey() + " and value= " + entry.getValue()); } -// SendPortalTodoRunnable sendPortalTodoRunnable = new SendPortalTodoRunnable(src,new_requestid,requestid,nodeid,user); -// new Thread(sendPortalTodoRunnable).start(); + String new_requestid2 = Util.null2String(resultBean.getResultInfo().get("requestid")); + bb.writeLog("new_requestid2:"+new_requestid2); + + if("SUCCESS".equals(executeResult)){ + String new_requestid = Util.null2String(resultBean.getResultInfo().get("requestid")); + bb.writeLog("new_requestid:"+new_requestid); + + SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); + SendPortalToReadUtil sendPortalToReadUtil = new SendPortalToReadUtil(); + + String portal_todourl = Constants.portal_todourl; + String bpm_app_workflowurl = Constants.bpm_app_workflowurl; + String username = Constants.username; + String passwd = Constants.passwd; + String bpm_workflowurl = Constants.bpm_workflowurl; + String center = Constants.center; + String bpm_app_requesturl = Constants.bpm_app_requesturl; + + + if(Util.getIntValue(requestid) == -1 && "save".equals(src)){ + sendPortalTodoUtil.sendTodoDataByCreater(new_requestid,user, portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); + }else if(Util.getIntValue(requestid) == -1 && "submit".equals(src)){ + sendPortalTodoUtil.sendTodoDataByCreateNode(new_requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); + sendPortalToReadUtil.sendToReadDataByCreateNode(new_requestid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); + + }else if(Util.getIntValue(requestid)> 0 && "submit".equals(src)){ + + /*** + * 空值:流程正常提交 + * 1:被代理人提交流程 + * 2:代理人提交流程 + */ + if("1".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); + bb.writeLog("forwardcount:"+forwardcount); + if(forwardcount > 0){ + sendPortalTodoUtil.completeForwardRequest(requestid,user,nodeid); + } + } + }else if(Util.getIntValue(requestid)> 0 && "reject".equals(src)){ + sendPortalTodoUtil.sendTodoDataByReject(requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); + + bb.writeLog("forwardcount:"+forwardcount); + if(forwardcount > 0){ + sendPortalTodoUtil.completeForwardRequest(requestid,user,nodeid); + } + + }else if(Util.getIntValue(requestid)> 0 && "intervenor".equals(src)){ + SendPortalMonitorUtil sendPortalMonitorUtil = new SendPortalMonitorUtil(); + sendPortalMonitorUtil.monitorIntervention(requestid,userid); + } + }else{ + + bb.writeLog("SendPortalTodoCmd-FAILURE"); + String portal_todourl = Constants.portal_todourl; + String bpm_app_workflowurl = Constants.bpm_app_workflowurl; + String username = Constants.username; + String passwd = Constants.passwd; + String bpm_workflowurl = Constants.bpm_workflowurl; + String center = Constants.center; + String bpm_app_requesturl = Constants.bpm_app_requesturl; + + SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); + if(Util.getIntValue(requestid,-1) == -1 && "submit".equals(src)){ + String new_requestid = Util.null2String(resultBean.getResultInfo().get("requestid")); + bb.writeLog("SendPortalTodoCmd-FAILURE:new_requestid:"+new_requestid); + sendPortalTodoUtil.sendTodoDataByCreater(new_requestid,user, portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl); + } + } } + }catch (Exception e){ + bb.writeLog("e:"+e); } - return result; } diff --git a/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java b/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java index 2d28667d..2c55de2f 100644 --- a/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java @@ -9,9 +9,12 @@ import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; import weaver.interfaces.dito.comInfo.PropBean; +import weaver.interfaces.dito.constant.Constants; import java.net.URLEncoder; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -87,7 +90,7 @@ public class SendPortalTodoUtil { " 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 ("+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 ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','8','9','11'))\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" + @@ -291,7 +294,7 @@ public class SendPortalTodoUtil { " 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 ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','7','11'))\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid; @@ -475,12 +478,12 @@ public class SendPortalTodoUtil { JSONObject requestObject = new JSONObject(); RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); bb.writeLog("sendTodoDataByNode"); String cus_staff = PropBean.getUfPropValue("cus_staff") ; String scopeid = "-1"; String scope = "HrmCustomFieldByInfoType" ; - String msgdata = ""; String terminal = "1" ; String taskType = "0"; @@ -497,6 +500,7 @@ public class SendPortalTodoUtil { String currentStaffId = "" ; String createrLastName = "" ; String currentUserId = user.getUID()+"" ; + String message = "" ; String userSql = "select "+cus_staff+" as staffid from cus_fielddata where scopeid="+scopeid+" and scope='"+scope+"' and id=?"; rs.executeQuery(userSql,currentUserId); @@ -505,109 +509,131 @@ public class SendPortalTodoUtil { } 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 ; - - bb.writeLog("sendTodoDataByNode--countSql:"+countSql); - rs.executeQuery(countSql); - while (rs.next()){ - count++; - } - bb.writeLog("sendTodoDataByNode--count:"+count); - String requestname = "" ; - String workflowname = "" ; - - if(count >0){ - - JSONArray taskObjectList = new JSONArray(); - String actionType = "1" ; - String objectAction = "1" ; - String objectType = "0"; - - 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 currentnodeid = "" ; + String currentnodetype = "" ; + String nodesql = " select t1.currentnodeid,t1.currentnodetype "+ + " from workflow_requestbase t1\n" + + " where ifnull(t1.deleted,0) <> 1 \n" + + " and t1.requestid = "+requestid ; + rs.executeQuery(nodesql); + if(rs.next()){ + currentnodeid = Util.null2String(rs.getString("currentnodeid")); + currentnodetype = Util.null2String(rs.getString("currentnodetype")); + } - bb.writeLog("sendTodoDataByNode--sql:"+sql); + bb.writeLog("sendTodoDataByNode-currentnodeid:"+currentnodeid); + bb.writeLog("sendTodoDataByNode-currentnodetype:"+currentnodetype); + if("3".equals(currentnodetype)){ + message = "流程流转到归档节点,执行actionType=3" ; + String actionType = "3" ; + try { + 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(org.apache.commons.lang3.StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } - rs.executeQuery(sql); - if (rs.next()){ - requestname = Util.null2String(rs.getString("requestname")) ; - workflowname = Util.null2String(rs.getString("workflowname")) ; - 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 requestname = "" ; + String workflowname = "" ; + String nodeId = "" ; + String nodeName = "" ; + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; + + bb.writeLog("monitorDelete4Requestid--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")) ; + } - 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; + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",nodeName); + requestObject.put("ticketType",workflowname); - if(StringUtils.isNotEmpty(mobileJumpUrl)){ - urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); - urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + String auth = username + ":" + passwd; + bb.writeLog("sendTodoDataByNode-3-requestObject:"+requestObject.toJSONString()); + + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("sendTodoDataByNode-3-msgdata:"+msgdata); + if(StringUtils.isNotBlank(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + if(msgObject.containsKey("resultCode")){ + String resultCode = msgObject.getString("resultCode"); + if("0".equals(resultCode)){ + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,"",message); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("sendTodoDataByNode:"+e); } - if("sysadmin".equals(currentLoginId)){ - currentLoginId = "Admin"; + }else{ + message += "流程流转从"+noideid+"节点提交,待办人员:" ; + int count = 0 ; + String countuserids = "" ; + 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 ('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()){ + String userid = Util.null2String(rs.getString("userid")); + countuserids += StringUtils.isBlank(countuserids) ? userid : ","+userid; + bb.writeLog("sendTodoDataByNode-userid:"+userid); + count++; } - bb.writeLog("urlDing", urlDing); - requestObject.put("center",center); - requestObject.put("title",requestname); - requestObject.put("creator",createrLoginId); - requestObject.put("taskCode","weaver"+requestid); - requestObject.put("nodeId",currentNodeId); - requestObject.put("taskType",taskType); - requestObject.put("actionType",actionType); - requestObject.put("createDate",processTime); - requestObject.put("messageTitle",getShortMessageTitle(requestname)); - requestObject.put("messageContent",requestname); - requestObject.put("terminal",terminal); - requestObject.put("urlPc",urlPc); - requestObject.put("urlApp",urlApp); - requestObject.put("urlDing",urlDing); - requestObject.put("nodeName",currentNodeName); - requestObject.put("ticketType",workflowname); - - 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); - taskObject.put("objectId",currentStaffId); - taskObjectList.add(taskObject); - requestObject.put("taskObjectList",taskObjectList); + message = message + "["+countuserids+"]" ; - if (taskObjectList.size() > 0){ - String auth = username + ":" + passwd; - msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); - } + bb.writeLog("sendTodoDataByNode--count:"+count); - }else{ - String actionType = "2" ; - String objectAction = "0" ; - String objectType = "0"; + String requestname = "" ; + String workflowname = "" ; + + if(count >0){ - JSONArray taskObjectList = new JSONArray(); + JSONArray taskObjectList = new JSONArray(); + String actionType = "1" ; + String objectAction = "1" ; + String objectType = "0"; - String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname,h2.loginid "+ + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname,h2.loginid "+ " from workflow_requestbase t1\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ @@ -615,128 +641,280 @@ public class SendPortalTodoUtil { " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + " and t1.requestid = "+requestid ; - bb.writeLog("sendTodoDataByNode--sql2:"+sql); + bb.writeLog("sendTodoDataByNode--sql:"+sql); - rs.executeQuery(sql); - if (rs.next()){ - requestname = Util.null2String(rs.getString("requestname")) ; - workflowname = Util.null2String(rs.getString("workflowname")) ; - currentNodeId = Util.null2String(rs.getString("nodeid")) ; - currentNodeName = Util.null2String(rs.getString("nodeName")) ; - createrLoginId = Util.null2String(rs.getString("loginid")) ; - createrLastName = Util.null2String(rs.getString("lastname")) ; - } + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + 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 ; - 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"); - } + message += ",流程流转到"+currentNodeId+"节点,执行actionType=1" ; + 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; - bb.writeLog("urlDing", urlDing); - - requestObject.put("center",center); - requestObject.put("title",requestname); - requestObject.put("creator",createrLoginId); - requestObject.put("taskCode","weaver"+requestid); - requestObject.put("nodeId",currentNodeId); - requestObject.put("taskType",taskType); - requestObject.put("actionType",actionType); - requestObject.put("createDate",processTime); - requestObject.put("messageTitle",getShortMessageTitle(requestname)); - requestObject.put("messageContent",requestname); - requestObject.put("terminal",terminal); - requestObject.put("urlPc",urlPc); - requestObject.put("urlApp",urlApp); - requestObject.put("urlDing",urlDing); - requestObject.put("nodeName",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','11'))\n" + - " and t2.islasttimes = 1\n" + - " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.requestid = "+requestid; - - bb.writeLog("sendTodoDataByNode--sql:"+sql); - rs.executeQuery(sql); - while (rs.next()){ - - String usercode = Util.null2String(rs.getString("loginid")) ; - String staffid = Util.null2String(rs.getString("staffid")) ; - String userid = Util.null2String(rs.getString("userid")) ; - nextNodeUserIds += StringUtils.isBlank(nextNodeUserIds) ? userid :","+userid ; + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + if("sysadmin".equals(currentLoginId)){ + currentLoginId = "Admin"; + } - if("sysadmin".equals(usercode)){ - usercode = "Admin"; + bb.writeLog("urlDing", urlDing); + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("creator",createrLoginId); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",currentNodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",currentNodeName); + requestObject.put("ticketType",workflowname); + + if(StringUtils.isNotBlank(currentLoginId)){ + 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); + taskObject.put("objectId",currentStaffId); + taskObjectList.add(taskObject); } - String objectCode = usercode ; - String operatorCode = usercode ; - - JSONObject taskObject = new JSONObject(); - taskObject.put("objectAction",objectAction); - taskObject.put("objectType",objectType); - taskObject.put("objectCode",objectCode); - taskObject.put("objectId",staffid); - taskObject.put("operatorCode",operatorCode); - taskObjectList.add(taskObject); - - String email = Util.null2String(rs.getString("email")) ; - bb.writeLog("email3:"+email); - Matcher matcher = regex.matcher(email); - if(matcher.matches()){ - emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ; + 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 ('5', '7','11'))\n" + + " and t2.islasttimes = 1\n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid; + + bb.writeLog("sendTodoDataByNode--sql:"+sql); + rs.executeQuery(sql); + while (rs.next()){ + + String usercode = Util.null2String(rs.getString("loginid")) ; + String staffid = Util.null2String(rs.getString("staffid")) ; + String userid = Util.null2String(rs.getString("userid")) ; + nextNodeUserIds += StringUtils.isBlank(nextNodeUserIds) ? userid :","+userid ; + + if("sysadmin".equals(usercode)){ + usercode = "Admin"; + } + + String objectCode = usercode ; + String operatorCode = usercode ; + + objectAction = "0"; + + JSONObject taskObject = new JSONObject(); + taskObject.put("objectAction",objectAction); + taskObject.put("objectType",objectType); + taskObject.put("objectCode",objectCode); + taskObject.put("objectId",staffid); + taskObject.put("operatorCode",operatorCode); + taskObjectList.add(taskObject); + +// String email = Util.null2String(rs.getString("email")) ; +// bb.writeLog("email3:"+email); +// Matcher matcher = regex.matcher(email); +// if(matcher.matches()){ +// emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ; +// } } - } - if (taskObjectList.size() >0){ + requestObject.put("taskObjectList",taskObjectList); - }else { - requestObject.put("actionType","3"); - } - String auth = username + ":" + passwd; - 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)){ + if (taskObjectList.size() > 0){ + String auth = username + ":" + passwd; + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("msgdata:"+msgdata); + if(!"".equals(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + if(msgObject.containsKey("resultCode")){ + String resultCode = msgObject.getString("resultCode"); + if("0".equals(resultCode)){ + + bb.writeLog("emailArray:"+emailArray); + if(StringUtils.isNotEmpty(emailArray)) + { + Map templateMap = getEmailTemplate(requestname,createrLastName,processTime); + String notificationSubject = templateMap.get("notificationSubject"); + String notificationContent = templateMap.get("notificationContent"); + + sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); + } + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds,message); + + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds,message); + } + } + } + } + }else{ + String objectAction = "0" ; + String objectType = "0"; + + JSONArray taskObjectList = new JSONArray(); + + 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--sql2:"+sql); + + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + currentNodeId = Util.null2String(rs.getString("nodeid")) ; + currentNodeName = Util.null2String(rs.getString("nodeName")) ; + createrLoginId = Util.null2String(rs.getString("loginid")) ; + createrLastName = Util.null2String(rs.getString("lastname")) ; + } - bb.writeLog("emailArray:"+emailArray); - if(StringUtils.isNotEmpty(emailArray)) - { -// String notificationSubject = "You have a new To-Do task:"+requestname+",Please handle it in time"; -// String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time"; + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+bpm_app_requesturl+requestid; + String urlApp = replace+bpm_app_requesturl+requestid; + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } - Map templateMap = getEmailTemplate(requestname,createrLastName,processTime); - String notificationSubject = templateMap.get("notificationSubject"); - String notificationContent = templateMap.get("notificationContent"); - sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); + bb.writeLog("urlDing", urlDing); + + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("creator",createrLoginId); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",currentNodeId); + requestObject.put("taskType",taskType); + + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",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 ('5', '7','11'))\n" + + " and t2.islasttimes = 1\n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid; + + bb.writeLog("sendTodoDataByNode--sql:"+sql); + rs.executeQuery(sql); + while (rs.next()){ + + String usercode = Util.null2String(rs.getString("loginid")) ; + String staffid = Util.null2String(rs.getString("staffid")) ; + String userid = Util.null2String(rs.getString("userid")) ; + nextNodeUserIds += StringUtils.isBlank(nextNodeUserIds) ? userid :","+userid ; + + if("sysadmin".equals(usercode)){ + usercode = "Admin"; } - sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds); + String objectCode = usercode ; + String operatorCode = usercode ; + + JSONObject taskObject = new JSONObject(); + taskObject.put("objectAction",objectAction); + taskObject.put("objectType",objectType); + taskObject.put("objectCode",objectCode); + taskObject.put("objectId",staffid); + taskObject.put("operatorCode",operatorCode); + taskObjectList.add(taskObject); + + String email = Util.null2String(rs.getString("email")) ; + bb.writeLog("email3:"+email); + Matcher matcher = regex.matcher(email); + if(matcher.matches()){ + emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ; + } + } - }else{ - String resultmsg = msgObject.getString("resultMsg"); - sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds); + if (taskObjectList.size() >0){ + requestObject.put("actionType","2"); + requestObject.put("taskObjectList",taskObjectList); + + message += ",流程流转到"+currentNodeId+"节点,执行actionType=2" ; + }else { + requestObject.put("actionType","3"); + + message += ",流程流转到"+currentNodeId+"节点,执行actionType=3" ; + } + String auth = username + ":" + passwd; + 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)){ + + bb.writeLog("emailArray:"+emailArray); + if(StringUtils.isNotEmpty(emailArray)) + { + + Map templateMap = getEmailTemplate(requestname,createrLastName,processTime); + String notificationSubject = templateMap.get("notificationSubject"); + String notificationContent = templateMap.get("notificationContent"); + + sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); + } + + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds,message); + + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds,message); + } + } } } } + + // //处理抄送的 // 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 "+ @@ -938,7 +1116,7 @@ public class SendPortalTodoUtil { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid; @@ -1045,5 +1223,125 @@ public class SendPortalTodoUtil { } + /*** + * + * @param requestid + * @param user + * @param nodeid + * @return + */ + public String completeForwardRequest(String requestid,User user,String nodeid){ + BaseBean bb = new BaseBean(); + bb.writeLog("com.customization.dito.sendtodo.SendPortalTodoUtil.completeForwardRequest"); + String message = " 执行流程提交完成同节点同提交人的转发的流程," ; + + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + String userid = user.getUID()+""; + + String zhjkbs = "com.customization.dito.sendtodo.SendPortalTodoUtil.completeForwardRequest"; + + RecordSet rs = new RecordSet(); + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String actionType = "3"; + String terminal = "1"; + String taskType = "0"; + + String portal_todourl = Constants.portal_todourl; + String bpm_app_workflowurl = Constants.bpm_app_workflowurl; + String username = Constants.username; + String passwd = Constants.passwd; + String bpm_workflowurl = Constants.bpm_workflowurl; + String center = Constants.center; + String bpm_app_requesturl = Constants.bpm_app_requesturl; + + try { + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace + bpm_app_requesturl + requestid; + String urlApp = replace + bpm_app_requesturl + requestid; + + if (StringUtils.isNotEmpty(mobileJumpUrl)) { + urlDing += "&returnUrl=" + URLEncoder.encode(mobileJumpUrl, "UTF-8"); + urlApp += "&returnUrl=" + URLEncoder.encode(mobileJumpUrl, "UTF-8"); + } + + String requestname = "" ; + String workflowname = "" ; + String createrLoginid = "" ; + + 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("completeForwardRequest --sql:" + sql); + + rs.executeQuery(sql); + if (rs.next()) { + requestname = Util.null2String(rs.getString("requestname")); + workflowname = Util.null2String(rs.getString("workflowname")); + createrLoginid = Util.null2String(rs.getString("loginid")); + } + + String nodename = "" ; + if(StringUtils.isNotBlank(nodeid)){ + rs.executeQuery(" select nodename from workflow_nodebase where id = ?",nodeid); + if (rs.next()){ + nodename = Util.null2String(rs.getString("nodename")); + } + } + + JSONObject requestObject = new JSONObject(); + requestObject.put("center", center); + requestObject.put("title", requestname); + requestObject.put("creator", createrLoginid); + requestObject.put("taskCode", "weaver" + requestid+"_zf_"+ userid); + requestObject.put("nodeId", nodeid); + requestObject.put("taskType", taskType); + requestObject.put("actionType", actionType); + requestObject.put("createDate", processTime); + requestObject.put("messageTitle", getShortMessageTitle(requestname)); + requestObject.put("messageContent", requestname); + requestObject.put("terminal", terminal); + requestObject.put("urlPc", urlPc); + requestObject.put("urlApp", urlApp); + requestObject.put("urlDing", urlDing); + requestObject.put("nodeName", nodename); + requestObject.put("ticketType", workflowname); + + bb.writeLog("completeForwardRequest-requestObject:" + requestObject.toJSONString()); + String auth = username + ":" + passwd; + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth); + + if (!"".equals(msgdata)) { + JSONObject msgObject = JSONObject.parseObject(msgdata); + bb.writeLog("completeForwardRequest:"+ msgObject.toJSONString()); + if (msgObject.containsKey("resultCode")) { + String resultCode = msgObject.getString("resultCode"); + message += "调用完成转发接口的返回值:"+resultCode ; + if ("0".equals(resultCode)) { + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, nodeid, nodename, userid, requestObject.toJSONString(), resultCode, "", zhjkbs,"",message); + } else { + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, nodeid, nodename, userid, requestObject.toJSONString(), resultCode, resultmsg, zhjkbs,"",message); + } + } + } + }catch (Exception e){ + bb.writeLog(e); + e.printStackTrace(); + } + return message; + } + + + } diff --git a/src/com/customization/dito/sendtodo/SendPortalWithAddTodoCmd.java b/src/com/customization/dito/sendtodo/SendPortalWithAddTodoCmd.java index 2ef4e215..f9b08b9d 100644 --- a/src/com/customization/dito/sendtodo/SendPortalWithAddTodoCmd.java +++ b/src/com/customization/dito/sendtodo/SendPortalWithAddTodoCmd.java @@ -247,7 +247,7 @@ public class SendPortalWithAddTodoCmd { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5', '7','11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid; diff --git a/src/com/customization/dito/sendtodo/agent/SendPortalToReadByAgentUtil.java b/src/com/customization/dito/sendtodo/agent/SendPortalToReadByAgentUtil.java index eae09826..f8388a05 100644 --- a/src/com/customization/dito/sendtodo/agent/SendPortalToReadByAgentUtil.java +++ b/src/com/customization/dito/sendtodo/agent/SendPortalToReadByAgentUtil.java @@ -222,7 +222,7 @@ public class SendPortalToReadByAgentUtil { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5', '7', '11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid+ diff --git a/src/com/customization/dito/sendtodo/agent/SendPortalTodoByAgentUtil.java b/src/com/customization/dito/sendtodo/agent/SendPortalTodoByAgentUtil.java index 72c77703..52b13f0d 100644 --- a/src/com/customization/dito/sendtodo/agent/SendPortalTodoByAgentUtil.java +++ b/src/com/customization/dito/sendtodo/agent/SendPortalTodoByAgentUtil.java @@ -71,7 +71,7 @@ public class SendPortalTodoByAgentUtil { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid+ @@ -183,7 +183,6 @@ public class SendPortalTodoByAgentUtil { } }else{ - String actionType = "2" ; String objectAction = "0" ; String objectType = "0"; @@ -227,7 +226,7 @@ public class SendPortalTodoByAgentUtil { requestObject.put("taskCode","weaver"+requestid); requestObject.put("nodeId",currentNodeId); requestObject.put("taskType",taskType); - requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); requestObject.put("messageTitle",getShortMessageTitle(requestname)); requestObject.put("messageContent",requestname); @@ -244,7 +243,7 @@ public class SendPortalTodoByAgentUtil { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5', '7','11'))\n" + " and t2.islasttimes = 1 \n" + " and (t2.isprocessing = '' or t2.isprocessing is null) \n" + " and t2.requestid = "+requestid+" and nodeid = "+currentNodeId; @@ -281,7 +280,9 @@ public class SendPortalTodoByAgentUtil { emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ; } } + if (taskObjectList.size() >0){ + requestObject.put("actionType","2"); requestObject.put("taskObjectList",taskObjectList); }else { requestObject.put("actionType","3"); diff --git a/src/com/engine/dito/reqremark/cmd/RequestRemarkCmd.java b/src/com/engine/dito/reqremark/cmd/RequestRemarkCmd.java index b689e585..5e6fcbd4 100644 --- a/src/com/engine/dito/reqremark/cmd/RequestRemarkCmd.java +++ b/src/com/engine/dito/reqremark/cmd/RequestRemarkCmd.java @@ -37,13 +37,91 @@ public class RequestRemarkCmd extends AbstractCommonCommand> BaseBean bb = new BaseBean(); String requestid = Util.null2String(params.get("requestid")); String nodeid = Util.null2String(params.get("nodeid")); + String preisremark = Util.null2String(params.get("preisremark")); + + bb.writeLog("RequestRemarkCmd-requestid:"+requestid); + bb.writeLog("RequestRemarkCmd-nodeid:"+nodeid); + bb.writeLog("RequestRemarkCmd-preisremark:"+preisremark); + + Map map = new HashMap(); - String resultCode = sendPortalDoneData(requestid,nodeid,userid+""); - bb.writeLog("RequestRemarkCmd -------resultCode:"+resultCode); - if("0".equals(resultCode) || "DONE-FAIL-001".equals(resultCode)){ - resultCode = completePortalReadData(requestid, nodeid,userid+""); + + if("8".equals(preisremark)){ + + RecordSet rs = new RecordSet(); + int count8 = 0 ; + String sql =" select t2.userid,t2.isremark,t1.requestid,t2.nodeid\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.preisremark in ('8')\n" + + " and t2.requestid = "+requestid +" and t2.userid in ("+userid+")"; + + bb.writeLog("RequestRemarkCmd-sql:"+sql); + rs.execute(sql); + if (rs.next()) { + count8++; + } + bb.writeLog("RequestRemarkCmd-count8:"+count8); + + if(count8 > 0) + { + String resultCode1 = completePortalReadData(requestid, nodeid,userid+""); + bb.writeLog("RequestRemarkCmd -------resultCode1:"+resultCode1); + + String resultCode2 = sendPortalDoneData(requestid,nodeid,userid+""); + bb.writeLog("RequestRemarkCmd -------resultCode2:"+resultCode2); + + map.put("resultCode1",resultCode1); + map.put("resultCode2",resultCode2); + } + + + int count9 = 0; + sql =" select t2.userid,t2.isremark,t1.requestid,t2.nodeid\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.preisremark in ('9') and t2.isremark in (2) " + + " and t2.requestid = "+requestid +" and t2.userid in ("+userid+")"; + + bb.writeLog("RequestRemarkCmd-sql:"+sql); + rs.execute(sql); + if (rs.next()) { + count9++; + } + bb.writeLog("RequestRemarkCmd-count9:"+count9); + + if(count9 > 0) + { + String resultCode1 = completePortalReadData(requestid, nodeid,userid+""); + bb.writeLog("RequestRemarkCmd -------resultCode1:"+resultCode1); + + String resultCode2 = sendPortalDoneData(requestid,nodeid,userid+""); + bb.writeLog("RequestRemarkCmd -------resultCode2:"+resultCode2); + + map.put("resultCode1",resultCode1); + map.put("resultCode2",resultCode2); + } + + }else if("9".equals(preisremark)){ + String resultCode1 = completePortalReadData(requestid, nodeid,userid+""); + bb.writeLog("RequestRemarkCmd -------resultCode1:"+resultCode1); + + String resultCode2 = sendPortalDoneData(requestid,nodeid,userid+""); + bb.writeLog("RequestRemarkCmd -------resultCode2:"+resultCode2); + + map.put("resultCode1",resultCode1); + map.put("resultCode2",resultCode2); } - map.put("resultcode",resultCode); + + +// bb.writeLog("RequestRemarkCmd -------resultCode:"+resultCode); +// if("0".equals(resultCode) || "DONE-FAIL-001".equals(resultCode)){ +// resultCode = completePortalReadData(requestid, nodeid,userid+""); +// bb.writeLog("RequestRemarkCmd-resultCode22:"+resultCode); +// } + return map; } @@ -159,6 +237,9 @@ public class RequestRemarkCmd extends AbstractCommonCommand> */ public String completePortalReadData(String requestid, String nodeid,String userid){ + String zhjkbs = "com.engine.dito.reqremark.cmd.RequestRemarkCmd.completePortalReadData"; + String nextNodeUserIds = "" ; + String message = "流程转发打开、提交,待阅删除接口"; String resultCode = "" ; HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); @@ -187,11 +268,14 @@ public class RequestRemarkCmd extends AbstractCommonCommand> 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 + "'"; + bb.writeLog("sql:"+sql); rs.executeQuery(sql); while (rs.next()) { workcode = Util.null2String(rs.getString("loginid")); } + bb.writeLog("workcode:"+workcode); + 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"); @@ -222,6 +306,8 @@ public class RequestRemarkCmd extends AbstractCommonCommand> requestname = Util.null2String(rs.getString("requestname")) ; } + bb.writeLog("workflowname:"+workflowname); + bb.writeLog("requestname:"+requestname); String createdate = TimeUtil.getCurrentDateString(); String createtime = TimeUtil.getCurrentTimeString(); @@ -260,6 +346,8 @@ public class RequestRemarkCmd extends AbstractCommonCommand> requestObject.put("taskObjectList",taskObjectList); String auth = username + ":" + passwd; + bb.writeLog("portal_todourl:"+portal_todourl); + bb.writeLog("requestObject:"+requestObject.toJSONString()); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); bb.writeLog("msgdata:"+msgdata); if(StringUtils.isNotEmpty(msgdata)){ @@ -267,9 +355,12 @@ public class RequestRemarkCmd extends AbstractCommonCommand> //{"resultCode":"1","resultMsg":"No Result"} if(msgObject.containsKey("resultCode")){ resultCode = msgObject.getString("resultCode"); - if(!"0".equals(resultCode)){ + if("0".equals(resultCode)){ + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds,message); + + }else{ String resultmsg = msgObject.getString("resultMsg"); - sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds,message); } } } @@ -292,6 +383,10 @@ public class RequestRemarkCmd extends AbstractCommonCommand> String resultCode = "" ; + String zhjkbs = "com.engine.dito.reqremark.cmd.RequestRemarkCmd.sendPortalDoneData"; + String nextNodeUserIds = "" ; + String message = "流程转发打开、提交,创建已办数据"; + RecordSet rs = new RecordSet(); BaseBean bb = new BaseBean(); @@ -400,9 +495,9 @@ public class RequestRemarkCmd extends AbstractCommonCommand> resultCode = msgObject.getString("resultCode"); if(!"0".equals(resultCode)){ String resultmsg = msgObject.getString("resultMsg"); - sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds,message); }else{ - sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,""); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds,message); } } } diff --git a/src/com/engine/workflow/cmd/agent/AddAgentSaveCmd.java b/src/com/engine/workflow/cmd/agent/AddAgentSaveCmd.java index 957c962b..a394ae8e 100644 --- a/src/com/engine/workflow/cmd/agent/AddAgentSaveCmd.java +++ b/src/com/engine/workflow/cmd/agent/AddAgentSaveCmd.java @@ -35,6 +35,7 @@ public class AddAgentSaveCmd extends AbstractCommonCommand>{ this.user = user; } + @Override public Map execute(CommandContext commandContext) { Map apidatas = new HashMap(); try{ @@ -127,15 +128,15 @@ public class AddAgentSaveCmd extends AbstractCommonCommand>{ String cus_staff = PropBean.getUfPropValue("cus_staff") ; String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); - String sql = " select distinct t1.requestid,t1.requestname,t1.createdate,h1.lastname as creatorname,t2.receivedate,t2.receivetime " + - " from workflow_base t " + - " left join workflow_requestbase t1 on t.id=t1.workflowid " + - " left join workflow_currentoperator t2 on t1.requestid = t2.requestid " + - " left join hrmresource h1 on h1.id = t1.creater "+ - " where t2.usertype=0 and t2.userid in (" + beagenterid +") and t.id in (" + workflowids +") "+ - " and ((t2.isremark =0 and (t2.takisremark is null or t2.takisremark ='0')) or t2.isremark in('1','5','9','7','8','9','11') ) " + - " and t2.islasttimes=1 " + - " and (t.isvalid=3 or t.isvalid=1) "; + String sql =" select distinct t1.requestid,t1.requestname,t1.createdate,h1.lastname as creatorname,t2.receivedate,t2.receivetime " + + " from workflow_base t " + + " left join workflow_requestbase t1 on t.id=t1.workflowid " + + " left join workflow_currentoperator t2 on t1.requestid = t2.requestid " + + " left join hrmresource h1 on h1.id = t1.creater "+ + " where t2.usertype=0 and t2.userid in (" + beagenterid +") and t.id in (" + workflowids +") "+ + " and ((t2.isremark =0 and (t2.takisremark is null or t2.takisremark ='0')) or t2.isremark in('5','7','11') ) " + + " and t2.islasttimes=1 " + + " and (t.isvalid=3 or t.isvalid=1) "; String zhjkbs = "com.engine.workflow.cmd.agent.AddAgentSaveCmd.DealPortalTodoAndDone"; String actionType = "1"; diff --git a/src/com/engine/workflow/cmd/agent/TakeBackAgentCmd.java b/src/com/engine/workflow/cmd/agent/TakeBackAgentCmd.java index c193b78a..6f8d08a2 100644 --- a/src/com/engine/workflow/cmd/agent/TakeBackAgentCmd.java +++ b/src/com/engine/workflow/cmd/agent/TakeBackAgentCmd.java @@ -173,7 +173,7 @@ public class TakeBackAgentCmd extends AbstractCommonCommand>{ " left join workflow_currentoperator t2 on t1.requestid = t2.requestid " + " left join hrmresource h1 on h1.id = t1.creater "+ " where t2.usertype=0 and t2.userid in (" + agenterid +") and t.id in (" + workflowids +") "+ - " and ((t2.isremark =0 and (t2.takisremark is null or t2.takisremark ='0')) or t2.isremark in('1','5','9','7','8','9','11') ) " + + " and ((t2.isremark =0 and (t2.takisremark is null or t2.takisremark ='0')) or t2.isremark in('5','7','11') ) " + " and t2.islasttimes=1 " + " and (t.isvalid=3 or t.isvalid=1) and t2.agenttype = 2 "; diff --git a/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java b/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java index ebd53ff5..36dd6ec1 100644 --- a/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java +++ b/src/weaver/interfaces/dito/monitor/SendPortalMonitorUtil.java @@ -2,6 +2,7 @@ package weaver.interfaces.dito.monitor; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import weaver.general.TimeUtil; import weaver.interfaces.dito.constant.Constants; import com.customization.dito.sendtodo.HttpRequestUtil; import com.customization.dito.sendtodo.SendPortalErrorUtil; @@ -15,7 +16,9 @@ import weaver.general.Util; import weaver.hrm.User; import weaver.interfaces.dito.comInfo.PropBean; import java.net.URLEncoder; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /*** @@ -36,6 +39,8 @@ public class SendPortalMonitorUtil { for (int i = 0; i < lcids.length; i++) { String requestid = lcids[i]; monitorDelete4Requestid(requestid,userid); + monitorFinishedWorkflowCopyToByRequestid(requestid); + monitorFinishedWorkflowForwardByRequestid(requestid); } } } @@ -270,7 +275,9 @@ public class SendPortalMonitorUtil { String[] lcids = requestids.split(","); for(int i=0;i 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid ; @@ -741,7 +748,7 @@ public class SendPortalMonitorUtil { " 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 ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','7','11')) \n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" + " and t2.islasttimes = 1 \n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid ; @@ -839,12 +846,23 @@ public class SendPortalMonitorUtil { } } + + + + /*** * intervention 流程干预 * @param requestid * @param currentUserId */ public void monitorIntervention(String requestid,String currentUserId){ + monitorInterventionByUserId(requestid,currentUserId); + monitorFinishedWorkflowCopyToByRequestid(requestid); + monitorFinishedWorkflowForwardByRequestid(requestid); + } + + + public void monitorInterventionByUserId(String requestid,String currentUserId){ String portal_todourl = Constants.portal_todourl; String bpm_app_workflowurl = Constants.bpm_app_workflowurl; @@ -854,7 +872,7 @@ public class SendPortalMonitorUtil { String center = Constants.center; String bpm_app_requesturl = Constants.bpm_app_requesturl; - String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorIntervention" ; + String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorInterventionByUserId" ; SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); @@ -891,11 +909,11 @@ public class SendPortalMonitorUtil { String sql =" select t1.requestname,t1.currentnodeid,d1.nodename,t3.workflowname,t1.currentnodetype \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 ; + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; bb.writeLog("monitorIntervention--sql2:"+sql); @@ -948,13 +966,13 @@ public class SendPortalMonitorUtil { 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','8','9','7','11')) \n" + - " and t2.islasttimes = 1\n" + - " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.requestid = "+requestid ; + " 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 ('5','7','11')) \n" + + " and t2.islasttimes = 1\n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.requestid = "+requestid ; bb.writeLog("monitorIntervention--countSql:"+countSql); rs.executeQuery(countSql); @@ -988,7 +1006,7 @@ public class SendPortalMonitorUtil { " 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 ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','8','9','7','11')) \n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" + " and t2.islasttimes = 1 \n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid ; @@ -1036,8 +1054,8 @@ public class SendPortalMonitorUtil { e.printStackTrace(); bb.writeLog("monitorIntervention-e:"+e); } - } + } /*** * @@ -1051,6 +1069,377 @@ public class SendPortalMonitorUtil { return messageTitle; } + + /*** + * + * @param requestid + */ + public void monitorFinishedWorkflowForwardByRequestid(String requestid){ + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + List> list = new ArrayList>(); + Map map = null ; + if(StringUtils.isNotBlank(requestid)){ + String sql =" select t.userid,t.nodeid,t.requestid \n" + + " from workflow_currentoperator t\n" + + " inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" + + " where t.requestid=" + requestid+ + " and (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t.isremark =1" ; + + bb.writeLog("monitorFinishedWorkflowForwardByRequestid-sql:"+sql); + rs.executeQuery(sql); + while (rs.next()){ + String nodeid = Util.null2String(rs.getString("nodeid")); + String userid = Util.null2String(rs.getString("userid")); + + map = new HashMap(); + map.put("requestid",requestid); + map.put("userid",userid); + map.put("nodeid",nodeid); + list.add(map); + } + + for(int i=0;i dataMap = list.get(i); + String newrequestid = Util.null2String(rs.getString("requestid")); + String userid = Util.null2String(rs.getString("userid")); + String nodeid = Util.null2String(rs.getString("nodeid")); + + bb.writeLog("monitorFinishedWorkflowForwardByRequestid-sql:"+sql); + bb.writeLog("monitorFinishedWorkflowForwardByRequestid-sql:"+sql); + if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){ + monitorFinishedWorkflowForwardByUserId(newrequestid,userid,nodeid); + } + } + } + } + + /*** + * + * @param requestid + * @param forwardNodeUserId + * @param forwardNodeId + */ + public void monitorFinishedWorkflowForwardByUserId(String requestid,String forwardNodeUserId,String forwardNodeId){ + + String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorFinishedWorkflowForwardByUserId" ; + String resultCode = "" ; + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); + String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl"); + String portal_todourl = PropBean.getUfPropValue("portal_todourl"); + String username = PropBean.getUfPropValue("username"); + String passwd = PropBean.getUfPropValue("passwd"); + String center = PropBean.getUfPropValue("center"); + String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl"); + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + String actionType = "3" ; + String terminal = "1" ; + String taskType = "1"; //0 – 待办 1 –待阅 + String objectAction = "0" ; + String objectType = "0"; + String objectId = "" ; + String nextNodeUserIds = ""; + + JSONObject requestObject = new JSONObject(); + try { + + String createdate = TimeUtil.getCurrentDateString(); + String createtime = TimeUtil.getCurrentTimeString(); + + String workcode = ""; + if(StringUtils.isNotBlank(forwardNodeUserId)){ + 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 = '" + forwardNodeUserId + "'"; + rs.executeQuery(sql); + while (rs.next()) { + workcode = Util.null2String(rs.getString("loginid")); + } + } + + bb.writeLog("monitorFinishedWorkflowForwardByUserId-workcode:"+workcode); + String forwardNodeName = "" ; + if(StringUtils.isNotBlank(forwardNodeId)){ + rs.executeQuery(" select nodename from workflow_nodebase where id = ?",forwardNodeId); + if (rs.next()){ + forwardNodeName = Util.null2String(rs.getString("nodename")); + } + } + bb.writeLog("monitorFinishedWorkflowForwardByUserId-forwardNodeName:"+forwardNodeName); + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + + String urlDing = replace+bpm_app_requesturl+requestid; + String urlApp = replace+bpm_app_requesturl+requestid; + if(StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + + + 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()) { + workflowname = Util.null2String(rs.getString("workflowname")) ; + requestname = Util.null2String(rs.getString("requestname")) ; + } + + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("creator",workcode); + //requestObject.put("taskCode",requestid+"_cs_"+nodeid+"_"+userid); + requestObject.put("taskCode", requestid+"_zf_"+forwardNodeId); + requestObject.put("nodeId",forwardNodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",createdate+" "+createtime); + requestObject.put("messageTitle",requestname); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",forwardNodeName); + requestObject.put("ticketType",workflowname); + + + JSONArray taskObjectList = new JSONArray(); + JSONObject taskObject = new JSONObject(); + + String objectCode = workcode ; + String operatorCode = workcode ; + taskObject.put("objectAction",objectAction); + taskObject.put("objectType",objectType); + taskObject.put("objectCode",objectCode); + taskObject.put("objectId",objectId); + taskObject.put("operatorCode",operatorCode); + taskObjectList.add(taskObject); + + requestObject.put("taskObjectList",taskObjectList); + bb.writeLog("monitorFinishedWorkflowForwardByUserId-requestObject:"+requestObject.toJSONString()); + + String auth = username + ":" + passwd; + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("monitorFinishedWorkflowForwardByUserId-msgdata:"+msgdata); + if(StringUtils.isNotEmpty(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + if(msgObject.containsKey("resultCode")){ + resultCode = msgObject.getString("resultCode"); + if("0".equals(resultCode)){ + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,forwardNodeId,forwardNodeName,forwardNodeUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds); + + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,forwardNodeId,forwardNodeName,forwardNodeUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds); + + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * + * @param requestid + */ + public void monitorFinishedWorkflowCopyToByRequestid(String requestid){ + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-requestid:"+requestid); + List> list = new ArrayList>(); + Map map = null ; + + String sql =" select t.userid,t.nodeid,t.requestid \n" + + " from workflow_currentoperator t\n" + + " inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" + + " where t.requestid=" + requestid+ + " and (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t.isremark in (8,9) " ; + rs.executeQuery(sql); + bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-sql:"+sql); + + while (rs.next()){ + String nodeid = Util.null2String(rs.getString("nodeid")); + String userid = Util.null2String(rs.getString("userid")); + + map = new HashMap(); + map.put("requestid",requestid); + map.put("userid",userid); + map.put("nodeid",nodeid); + list.add(map); + } + + for(int i=0;i dataMap = list.get(i); + String newrequestid = Util.null2String(dataMap.get("requestid")); + String userid = Util.null2String(dataMap.get("userid")); + String nodeid = Util.null2String(dataMap.get("nodeid")); + bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-userid:"+userid); + bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-nodeid:"+nodeid); + + if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){ + monitorFinishedWorkflowCopyToByUserid(newrequestid,userid,nodeid); + } + } + } + + + /*** + * + * @param requestid + * @param copyNodeUserId + * @param copyNodeid + */ + public void monitorFinishedWorkflowCopyToByUserid(String requestid,String copyNodeUserId,String copyNodeid){ + + String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorFinishedWorkflowCopyToByUserid" ; + + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + String bpm_app_workflowurl = Constants.bpm_app_workflowurl; + String bpm_app_requesturl = Constants.bpm_app_requesturl; + String portal_todourl = Constants.portal_todourl; + String username = Constants.username; + String passwd = Constants.passwd; + String center = Constants.center; + String bpm_workflowurl = Constants.bpm_workflowurl; + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + String actionType = "3" ; + String terminal = "1" ; + String taskType = "1"; //0 – 待办 1 –待阅 + String objectAction = "0" ; + String objectType = "0"; + String objectId = "" ; + + JSONObject requestObject = new JSONObject(); + try { + + String createdate = TimeUtil.getCurrentDateString(); + String createtime = TimeUtil.getCurrentTimeString(); + + String workcode = ""; + if(StringUtils.isNotBlank(copyNodeUserId)){ + 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 = '" + copyNodeUserId + "'"; + rs.executeQuery(sql); + if (rs.next()) { + workcode = Util.null2String(rs.getString("loginid")); + } + } + + bb.writeLog("monitorFinishedWorkflowCopyToByUserid-workcode:"+workcode); + + String copyNodeName = "" ; + if(StringUtils.isNotBlank(copyNodeid)){ + rs.executeQuery(" select nodename from workflow_nodebase where id = ?",copyNodeid); + if (rs.next()){ + copyNodeName = Util.null2String(rs.getString("nodename")); + } + } + bb.writeLog("monitorFinishedWorkflowCopyToByUserid-copyNodeName:"+copyNodeName); + + 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(org.apache.commons.lang.StringUtils.isNotEmpty(mobileJumpUrl)){ + urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8"); + } + + 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()) { + workflowname = Util.null2String(rs.getString("workflowname")) ; + requestname = Util.null2String(rs.getString("requestname")) ; + } + + + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("creator",workcode); + requestObject.put("taskCode", requestid+"_cs_"+copyNodeUserId); + requestObject.put("nodeId",copyNodeid); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",createdate+" "+createtime); + requestObject.put("messageTitle",requestname); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",copyNodeName); + requestObject.put("ticketType",workflowname); + + + JSONArray taskObjectList = new JSONArray(); + JSONObject taskObject = new JSONObject(); + + String objectCode = workcode ; + String operatorCode = workcode ; + taskObject.put("objectAction",objectAction); + taskObject.put("objectType",objectType); + taskObject.put("objectCode",objectCode); + taskObject.put("objectId",objectId); + taskObject.put("operatorCode",operatorCode); + taskObjectList.add(taskObject); + + requestObject.put("taskObjectList",taskObjectList); + bb.writeLog("monitorFinishedWorkflowCopyToByUserid-requestObject:"+requestObject.toJSONString()); + + String auth = username + ":" + passwd; + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("monitorFinishedWorkflowCopyToByUserid-msgdata:"+msgdata); + if(StringUtils.isNotEmpty(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + if(msgObject.containsKey("resultCode")){ + String resultCode = msgObject.getString("resultCode"); + if("0".equals(resultCode)){ + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,copyNodeid,copyNodeName,copyNodeUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,""); + + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,copyNodeid,copyNodeName,copyNodeUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,""); + + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } diff --git a/src/weaver/interfaces/dito/mq/HrmRocketmqRunnable.java b/src/weaver/interfaces/dito/mq/HrmRocketmqRunnable.java new file mode 100644 index 00000000..bc2ede51 --- /dev/null +++ b/src/weaver/interfaces/dito/mq/HrmRocketmqRunnable.java @@ -0,0 +1,183 @@ +package weaver.interfaces.dito.mq; + +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + + +public class HrmRocketmqRunnable implements Runnable { + + + private String personno; + private String managerno; + private String personid; + private String managerid; + private String cus_eid; + private JSONObject datasObject; + + public HrmRocketmqRunnable(String personno, String managerno, String personid, String managerid, String cus_eid, JSONObject datasObject) { + this.personno = personno.trim(); + this.managerno = managerno; + this.personid = personid; + this.managerid = managerid; + this.cus_eid = cus_eid; + this.datasObject = datasObject; + } + + @Override + public void run() { + + try { + Thread.sleep(10 * 1000); + updateHrmEid(); + + Thread.sleep( 60 * 1000); + updateHrmEid(); + + } catch (InterruptedException interruptedException) { + interruptedException.printStackTrace(); + } + } + + public void updateHrmEid() { + + BaseBean bb = new BaseBean(); + bb.writeLog("HrmRocketmqRunnable"); + bb.writeLog("personno:" + personno); + bb.writeLog("managerno:" + managerno); + bb.writeLog("personid:" + personid); + bb.writeLog("managerid" + managerid); + bb.writeLog("cus_eid:" + cus_eid); + + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String nowDateTime = sdf.format(new Date()); + + HrmRocketmqUtil hrmRocketmqUtil = new HrmRocketmqUtil(); + + RecordSet rs = new RecordSet(); + if (StringUtils.isEmpty(personid)) { + + String sql = "select id from cus_fielddata where " + cus_eid + " = '" + personno + "' and scope='HrmCustomFieldByInfoType' and scopeid=-1 "; + bb.writeLog("HrmRocketmqRunnable-sql3:" + sql); + rs.execute(sql); + if (rs.next()) { + personid = Util.null2String(rs.getString("id")); + } + } + bb.writeLog("personid2:" + personid); + + if (StringUtils.isEmpty(managerid)) { + String sql = "select id from cus_fielddata where " + cus_eid + " = '" + managerno + "' and scope='HrmCustomFieldByInfoType' and scopeid=-1 "; + bb.writeLog("HrmRocketmqRunnable-sql:" + sql); + rs.executeQuery(sql); + if (rs.next()) { + managerid = Util.null2String(rs.getString("id")); + } + } + bb.writeLog("managerid2:" + managerid); + + if (StringUtils.isNotEmpty(personid) && StringUtils.isNotEmpty(managerid)) { + + Map dataMap = new HashMap(); + + String sql = " update hrmresource set managerid = ? where id = ? "; + + Object[] objects = new Object[]{managerid, personid}; + + boolean flag = rs.executeUpdate(sql, objects); + bb.writeLog("HrmRocketmqRunnable-flag:" + flag); + + if (!flag) { + dataMap.put("errmessage", "人员更新SQL执行错误,managerid:" + managerid + "、personid:" + personid); + dataMap.put("zxjg", "false"); + } else { + dataMap.put("errmessage", "人员更新SQL执行成功"); + dataMap.put("zxjg", "true"); + + ResourceComInfo resComInfo; + try { + resComInfo = new ResourceComInfo(); + resComInfo.removeResourceCache(); + } catch (Exception e) { + bb.writeLog(e); + } + } + + dataMap.put("syndate", nowDateTime); + dataMap.put("reqmessage", "HrmRocketmqRunnable"); + dataMap.put("reqobject", ""); + dataMap.put("systable", "cus_fielddata"); + dataMap.put("zxyj", sql); + dataMap.put("zxcs", HrmRocketmqUtil.convertObject2String(objects)); + dataMap.put("personno", personno); + hrmRocketmqUtil.recordErrorData(dataMap); + } else { + + if (StringUtils.isNotBlank(personid) && StringUtils.isBlank(managerid)) { + + Map dataMap = new HashMap(); + + String sql = " update hrmresource set managerid = null where id = " + personid; + boolean flag = rs.executeUpdate(sql); + bb.writeLog("HrmRocketmqRunnable--flag:" + flag); + if (!flag) { + dataMap.put("errmessage", "人员更新SQL执行错误,managerid:" + managerid + "、personid:" + personid); + dataMap.put("zxjg", "false"); + } else { + dataMap.put("errmessage", "人员更新SQL执行成功"); + dataMap.put("zxjg", "true"); + ResourceComInfo resComInfo; + try { + resComInfo = new ResourceComInfo(); + resComInfo.removeResourceCache(); + } catch (Exception e) { + bb.writeLog(e); + } + } + + dataMap.put("syndate", nowDateTime); + dataMap.put("reqmessage", "HrmRocketmqRunnable"); + dataMap.put("reqobject", datasObject.toJSONString()); + dataMap.put("systable", "cus_fielddata"); + dataMap.put("zxyj", sql); + dataMap.put("zxcs", managerid + "," + personid); + dataMap.put("personno", personno); + hrmRocketmqUtil.recordErrorData(dataMap); + + } else if (StringUtils.isBlank(personid) && StringUtils.isNotBlank(managerid)) { + + Map dataMap = new HashMap(); + dataMap.put("syndate", nowDateTime); + dataMap.put("reqmessage", "HrmRocketmqRunnable"); + dataMap.put("reqobject", datasObject.toJSONString()); + dataMap.put("systable", "cus_fielddata"); + dataMap.put("errmessage", "入参参数personno未空在cus_fielddata查询为空"); + dataMap.put("personno", personno); + hrmRocketmqUtil.recordErrorData(dataMap); + + } else if (StringUtils.isBlank(personid) && StringUtils.isBlank(managerid)) { + Map dataMap = new HashMap(); + dataMap.put("syndate", nowDateTime); + dataMap.put("reqmessage", "HrmRocketmqRunnable"); + dataMap.put("reqobject", datasObject.toJSONString()); + dataMap.put("systable", "cus_fielddata"); + dataMap.put("errmessage", "入参参数personno、managerno未空在cus_fielddata查询为空"); + dataMap.put("personno", personno); + hrmRocketmqUtil.recordErrorData(dataMap); + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + } +} + diff --git a/src/weaver/interfaces/dito/mq/HrmRocketmqUtil.java b/src/weaver/interfaces/dito/mq/HrmRocketmqUtil.java index bd57465d..e3410923 100644 --- a/src/weaver/interfaces/dito/mq/HrmRocketmqUtil.java +++ b/src/weaver/interfaces/dito/mq/HrmRocketmqUtil.java @@ -48,8 +48,8 @@ public class HrmRocketmqUtil { for(int i=0;i dataMap = new HashMap(); - sql = " update hrmresource h set h.managerid = ? where id = ? "; + String sql = " update hrmresource set managerid = ? where id = ? "; Object[] objects = new Object[]{managerid,personid} ; @@ -95,14 +98,6 @@ public class HrmRocketmqUtil { }else{ dataMap.put("errmessage","人员更新SQL执行成功"); dataMap.put("zxjg","true"); - - ResourceComInfo resComInfo; - try { - resComInfo = new ResourceComInfo(); - resComInfo.removeResourceCache(); - } catch (Exception e) { - bb.writeLog(e); - } } dataMap.put("syndate",nowDateTime); @@ -115,15 +110,56 @@ public class HrmRocketmqUtil { recordErrorData(dataMap); }else{ - Map dataMap = new HashMap(); - dataMap.put("syndate",nowDateTime); - dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("reqobject",datasObject.toJSONString()); - dataMap.put("systable","hrmresource"); - dataMap.put("errmessage","入参参数personno、managerno在cus_fielddata查询为空"); - dataMap.put("personno",personno); - recordErrorData(dataMap); + if(StringUtils.isNotBlank(personid) && StringUtils.isBlank(managerid)){ + + Map dataMap = new HashMap(); + + String sql = " update hrmresource set managerid = null where id = "+personid; + boolean flag = rs.executeUpdate(sql); + bb.writeLog("flag:"+flag); + if(!flag){ + errcount++; + dataMap.put("errmessage","人员更新SQL执行错误,managerid:"+managerid+"、personid:"+personid); + dataMap.put("zxjg","false"); + }else{ + dataMap.put("errmessage","人员更新SQL执行成功"); + dataMap.put("zxjg","true"); + } + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("reqobject",datasObject.toJSONString()); + dataMap.put("systable","hrmresource"); + dataMap.put("zxyj",sql); + dataMap.put("zxcs",managerid+","+personid); + dataMap.put("personno",personno); + recordErrorData(dataMap); + + }else if(StringUtils.isBlank(personid) && StringUtils.isNotBlank(managerid)){ + + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("reqobject",datasObject.toJSONString()); + dataMap.put("systable","hrmresource"); + dataMap.put("errmessage","入参参数personno未空在cus_fielddata查询为空"); + dataMap.put("personno",personno); + recordErrorData(dataMap); + + updateManagerByRunner(personno,managerno,personid,managerid,cus_eid,datasObject); + + }else if(StringUtils.isBlank(personid) && StringUtils.isBlank(managerid)){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("reqobject",datasObject.toJSONString()); + dataMap.put("systable","hrmresource"); + dataMap.put("errmessage","入参参数personno、managerno未空在cus_fielddata查询为空"); + dataMap.put("personno",personno); + recordErrorData(dataMap); + + updateManagerByRunner(personno,managerno,personid,managerid,cus_eid,datasObject); + } } }else{ @@ -134,7 +170,6 @@ public class HrmRocketmqUtil { dataMap.put("systable","hrmresource"); dataMap.put("errmessage","入参参数personno、managerno未空"); recordErrorData(dataMap); - } }else{ @@ -146,9 +181,16 @@ public class HrmRocketmqUtil { dataMap.put("errmessage","入参参数status不为1"); dataMap.put("personno",personno); recordErrorData(dataMap); - } } + + ResourceComInfo resComInfo; + try { + resComInfo = new ResourceComInfo(); + resComInfo.removeResourceCache(); + } catch (Exception e) { + bb.writeLog(e); + } }else{ Map dataMap = new HashMap(); @@ -270,4 +312,58 @@ public class HrmRocketmqUtil { return datas; } + + public void updateManagerByRunner(String personno,String managerno,String personid,String managerid,String cus_eid,JSONObject datasObject){ + HrmRocketmqRunnable hrmRocketmqRunnable = new HrmRocketmqRunnable(personno,managerno,personid,managerid,cus_eid,datasObject); + new Thread(hrmRocketmqRunnable).start(); + } + + + /*** + * + * @param cus_eid + * @param personno + * @return + */ + public String convertPersonno2PersonId(String cus_eid,String personno){ + BaseBean bb = new BaseBean(); + String personid = "" ; + try{ + RecordSet rs = new RecordSet(); + String sql = "select id from cus_fielddata where "+cus_eid+"= '"+personno+"' and scope='HrmCustomFieldByInfoType' and scopeid=-1 " ; + bb.writeLog("sql3:"+sql); + rs.execute(sql); + if(rs.next()) { + personid = Util.null2String(rs.getString("id")); + } + }catch (Exception e){ + bb.writeLog("convertPersonno2PersonId-e:"+e); + } + return personid ; + } + + /** + * + * @param cus_eid + * @param personno + * @return + */ + public String convertManagerno2ManagerId(String cus_eid,String managerno){ + BaseBean bb = new BaseBean(); + String managerid = "" ; + try{ + RecordSet rs = new RecordSet(); + String sql = "select id from cus_fielddata where "+cus_eid+" = '"+managerno+"' and scope='HrmCustomFieldByInfoType' and scopeid=-1 " ; + bb.writeLog("sql:"+sql); + rs.executeQuery(sql); + if(rs.next()) { + managerid = Util.null2String(rs.getString("id")); + } + }catch (Exception e){ + bb.writeLog("convertPersonno2PersonId-e:"+e); + } + return managerid ; + } + + } diff --git a/src/weaver/interfaces/dito/mq/RocketmqUtil.java b/src/weaver/interfaces/dito/mq/RocketmqUtil.java index 7a794234..9744de69 100644 --- a/src/weaver/interfaces/dito/mq/RocketmqUtil.java +++ b/src/weaver/interfaces/dito/mq/RocketmqUtil.java @@ -15,6 +15,7 @@ import weaver.general.TimeUtil; import weaver.general.Util; import weaver.hrm.cachecenter.bean.RolemembersComInfo; import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.job.JobTitlesComInfo; import weaver.hrm.resource.ResourceComInfo; import weaver.hrm.roles.RolesComInfo; import weaver.interfaces.dito.comInfo.PropBean; @@ -449,7 +450,7 @@ public class RocketmqUtil { if(rs.next()){ subcompanyid1 = Util.null2String(rs.getString("id")); } - if("".equals(subcompanyid1)){ + if(StringUtils.isBlank(subcompanyid1)){ String sql = " select id,subcompanyid1 from hrmdepartment where departmentcode = ?" ; rs.executeQuery(sql,new Object[]{parentOrgCode}); if(rs.next()){ @@ -458,10 +459,10 @@ public class RocketmqUtil { } } } + bb.writeLog("actType:"+actType); bb.writeLog("supdepid:"+supdepid); bb.writeLog("subcompanyid1:"+subcompanyid1); -// String departmentmark = " ~`~`7 "+orgName+"`~`8 "+orgName+"`~`~"; String departmentmark = orgName; if(StringUtils.isNotEmpty(subcompanyid1)) { @@ -477,7 +478,7 @@ public class RocketmqUtil { if("M".equalsIgnoreCase(actType)) { String deptUpdateSql = " update hrmdepartment set departmentmark=?,departmentname=?," + - " subcompanyid1=?,showorder=?, supdepid=? where departmentcode=? "; + " subcompanyid1=?,showorder=?, supdepid=? where departmentcode=? "; bb.writeLog("deptUpdateSql:"+deptUpdateSql); Object[] objects = new Object[]{departmentmark,departmentmark,subcompanyid1,orgId,supdepid,orgCode} ; @@ -511,7 +512,7 @@ public class RocketmqUtil { if(hrmResourceCount == 0 ){ String deptUpdateSql = " update hrmdepartment set departmentmark=?,departmentname=?,canceled=?," + - " subcompanyid1=?,showorder=?, supdepid=? where departmentcode=? "; + " subcompanyid1=?,showorder=?, supdepid=? where departmentcode=? "; bb.writeLog("deptUpdateSql:"+deptUpdateSql); Object[] objects = new Object[]{departmentmark,departmentmark,canceled,subcompanyid1,orgId,supdepid,orgCode}; @@ -691,8 +692,8 @@ public class RocketmqUtil { if (StringUtils.isNotEmpty(systemUserCode)) { String sql =" select h.id,d.departmentcode from hrmresource h \n" + - " inner join hrmdepartment d on d.id = h.departmentid \n" + - " where loginid='"+systemUserCode+"'"; + " inner join hrmdepartment d on d.id = h.departmentid \n" + + " where loginid='"+systemUserCode+"'"; bb.writeLog("sql:"+sql); rs.executeQuery(sql); if (rs.next()) { @@ -712,7 +713,7 @@ public class RocketmqUtil { String queryRoleIdSql = " select id from hrmroles where rolesmark=?"; rs.executeQuery(queryRoleIdSql, new Object[]{roleCode}); if (rs.next()) { - roleId = rs.getString("id"); + roleId = Util.null2String(rs.getString("id")); } } bb.writeLog("userId:" + userId + " roleId:" + roleId); @@ -723,7 +724,7 @@ public class RocketmqUtil { String ifExistSql = "select id from hrmrolemembers where roleid=? and resourceid=?"; rs.executeQuery(ifExistSql,new Object[]{roleId, userId}); if (rs.next()) { - releationId = rs.getString("id"); + releationId = Util.null2String(rs.getString("id")); } bb.writeLog("userId:" + userId + " roleId:" + roleId + "releationId:" + releationId); if (StringUtils.isNotEmpty(releationId)) { @@ -956,22 +957,27 @@ public class RocketmqUtil { String userId = ""; String jobtitlesId = ""; String departmentId = ""; + String jobtitlecode = "" ; try { if(StringUtils.isNotEmpty(orgCode)){ String querDepartmentIdSql = " select id from hrmdepartment where departmentcode=? "; bb.writeLog("querDepartmentIdSql:"+querDepartmentIdSql); rs.executeQuery(querDepartmentIdSql,new Object[]{orgCode}); if (rs.next()){ - departmentId = rs.getString("id"); + departmentId = Util.null2String(rs.getString("id")); } } if(StringUtils.isNotEmpty(departmentId) && StringUtils.isNotEmpty(systemUserCode)) { - String sql = " select id from hrmresource where workcode=? and departmentid = ?"; + String sql = " select h.id,k.jobtitlecode " + + " from hrmresource h " + + " left join HrmJobTitles k on h.jobtitle = k.id " + + " where h.workcode=? and h.departmentid = ? "; bb.writeLog("sql:" + sql); rs.executeQuery(sql, new Object[]{systemUserCode, departmentId}); if (rs.next()) { userId = Util.null2String(rs.getString("id")); + jobtitlecode = Util.null2String(rs.getString("jobtitlecode")); } } if(StringUtils.isNotEmpty(postCode)) { @@ -979,7 +985,7 @@ public class RocketmqUtil { bb.writeLog("queryRoleIdSql:" + queryRoleIdSql); rs.executeQuery(queryRoleIdSql, new Object[]{postCode}); if (rs.next()) { - jobtitlesId = rs.getString("id"); + jobtitlesId = Util.null2String(rs.getString("id")); } } bb.writeLog("jobtitlesId:"+jobtitlesId); @@ -1021,37 +1027,58 @@ public class RocketmqUtil { recordErrorData(dataMap); // } }else if("D".equals(actType)){ - if(StringUtils.isNotEmpty(postName)) { - postName = postName.toLowerCase().replaceAll("\\s+", ""); - if(stringSet.contains(postName)){ - String sql = "update matrixtable_2 set "+postName+"=null where id=?"; - rs.executeUpdate(sql,new Object[]{departmentId}); - } - } - jobtitlesId = null; - String updateUserJobSql = " update hrmresource set jobtitle=?,modified=?,modifier=? where id=? "; - bb.writeLog("updateUserJobSql:"+updateUserJobSql); - Object[] objects = new Object[]{jobtitlesId,currentDateTime,updateStaff,userId}; + if(StringUtils.isNotBlank(jobtitlecode)){ + if(jobtitlecode.equals(postCode)){ + if(StringUtils.isNotEmpty(postName)) { + postName = postName.toLowerCase().replaceAll("\\s+", ""); + if(stringSet.contains(postName)){ + String sql = "update matrixtable_2 set "+postName+"=null where id=?"; + rs.executeUpdate(sql,new Object[]{departmentId}); + } + } + jobtitlesId = null; + String updateUserJobSql = " update hrmresource set jobtitle=?,modified=?,modifier=? where id=? "; + bb.writeLog("updateUserJobSql:"+updateUserJobSql); + Object[] objects = new Object[]{jobtitlesId,currentDateTime,updateStaff,userId}; - boolean flag = rs.executeUpdate(updateUserJobSql,objects); - bb.writeLog(" updateUserJobFlag: "+flag); - Map dataMap = new HashMap(); - dataMap.put("syndate",nowDateTime); - dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("systable",tableName); - if(!flag){ - dataMap.put("errmessage","删除人员岗位sql执行错误"); - }else { - dataMap.put("errmessage","删除人员岗位sql执行成功"); - } - dataMap.put("staffcode",systemUserCode); - dataMap.put("zxyj",updateUserJobSql); - dataMap.put("zxcs",convertObject2String(objects)); + boolean flag = rs.executeUpdate(updateUserJobSql,objects); + bb.writeLog(" updateUserJobFlag: "+flag); + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("systable",tableName); + if(!flag){ + dataMap.put("errmessage","删除人员岗位sql执行错误"); + }else { + dataMap.put("errmessage","删除人员岗位sql执行成功"); + } + dataMap.put("staffcode",systemUserCode); - recordErrorData(dataMap); + dataMap.put("zxyj",updateUserJobSql); + dataMap.put("zxcs",convertObject2String(objects)); + + recordErrorData(dataMap); + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员岗位中人对应的岗位不存在,无法删除"); + dataMap.put("systable",tableName); + dataMap.put("staffcode",systemUserCode); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员岗位中人对应的岗位为空,无法删除"); + dataMap.put("systable",tableName); + dataMap.put("staffcode",systemUserCode); + recordErrorData(dataMap); + } } }else{ Map dataMap = new HashMap(); @@ -1149,7 +1176,7 @@ public class RocketmqUtil { rs.executeQuery(queryRoleSql,new Object[]{sysRoleCode}); bb.writeLog(queryRoleSql); if (rs.next()){ - rolesid = rs.getString("id"); + rolesid = Util.null2String(rs.getString("id")); } } bb.writeLog("rolesid:"+rolesid); @@ -1338,13 +1365,15 @@ public class RocketmqUtil { String jobtitlemark = sysPostName; String jobtitlename = sysPostName; + JobTitlesComInfo jobTitlesComInfo ; + try { String departmentId = ""; if(StringUtils.isNotEmpty(orgCode)){ String querDepartmentIdSql = "select id from hrmdepartment where departmentcode=?"; rs.executeQuery(querDepartmentIdSql, new Object[]{orgCode}); if (rs.next()) { - departmentId = rs.getString("id"); + departmentId = Util.null2String(rs.getString("id"),"null"); } } @@ -1372,7 +1401,7 @@ public class RocketmqUtil { String queryRoleSql = " select id from hrmjobtitles where jobtitlecode =? and jobactivityid = ?"; rs.executeQuery(queryRoleSql, new Object[]{sysPostCode, jobactivitiesid}); if (rs.next()) { - jobtitleid = rs.getString("id"); + jobtitleid = Util.null2String(rs.getString("id")); } } @@ -1466,6 +1495,11 @@ public class RocketmqUtil { recordErrorData(dataMap); } } + + + jobTitlesComInfo = new JobTitlesComInfo(); + jobTitlesComInfo.removeJobTitlesCache(); + }catch (Exception e) { Map dataMap = new HashMap(); @@ -1632,7 +1666,7 @@ public class RocketmqUtil { bb.writeLog("status:"+status); String userUpdateSql = " update hrmresource set loginid=?,lastname=?,departmentid=?,subcompanyid1=?," + - " creater=?,email=?,mobile=?,status=?,dsporder=?,lastmoddate=?,modified=? where workcode=? "; + " creater=?,email=?,mobile=?,status=?,dsporder=?,lastmoddate=?,modified=? where workcode=? "; Object[] objects = new Object[]{loginid,lastname,deptId,subcompanyid1,creator,email,pwdSmsTel,status,loginedNum,currentDate,currentDateTime,staffCode}; @@ -1658,10 +1692,14 @@ public class RocketmqUtil { recordErrorData(dataMap); }else if("D".equals(actType)){ status = "5"; - String staffCodenew = loginid+"_cf_0"; - String userUpdateSql = " update hrmresource set status=?,loginid=?,workcode=? where id=? "; +// String staffCodenew = loginid+"_cf_0"; +// String userUpdateSql = " update hrmresource set status=?,loginid=?,workcode=? where id=? "; +// +// Object[] objects = new Object[]{status,staffCodenew,staffCodenew,userid}; +// bb.writeLog("userUpdateSql:"+userUpdateSql); - Object[] objects = new Object[]{status,staffCodenew,staffCodenew,userid}; + String userUpdateSql = " update hrmresource set status=? where id=? "; + Object[] objects = new Object[]{status,userid}; bb.writeLog("userUpdateSql:"+userUpdateSql); boolean flag = rs.executeUpdate(userUpdateSql,objects); @@ -1682,182 +1720,132 @@ public class RocketmqUtil { dataMap.put("errmessage","人员离职SQL执行成功"); } recordErrorData(dataMap); - }else{ + }else if("A".equalsIgnoreCase(actType)){ - int status1count = 0; - sql = " select id from hrmresource where loginid = '"+staffCode+"' and status in(0,1,2,3) " ; - bb.writeLog("loginidisnotnull-sql:"+sql); + int status5count = 0; + List loginList = new ArrayList(); + sql = " select id from hrmresource where loginid like '"+staffCode+"%' " ; + bb.writeLog("loginidisnotnull-sql:" + sql); rs.executeQuery(sql); - if(rs.next()){ - status1count++; + while (rs.next()) { + String user_id = Util.null2String(rs.getString("id")); + String upsql = " update hrmresource set loginid='" + staffCode + "_cf_" + status5count + "',workcode='"+staffCode+"_cf_"+status5count+"' where id = " + user_id ; + bb.writeLog("loginidisnotnull-upsql:" + upsql); + loginList.add(upsql); + status5count++; } - bb.writeLog("loginidisnotnull-status1count:"+status1count); - if(status1count == 0) { - int status5count = 0; - List loginList = new ArrayList(); - sql = " select id from hrmresource where loginid like '"+staffCode+"%' and status = 5" ; -// sql = " select id,status from hrmresource where (loginid = '"+staffCode+"' or loginid like '"+staffCode+"_cf%') and status = 5"; - bb.writeLog("loginidisnotnull-sql:" + sql); - rs.executeQuery(sql); - while (rs.next()) { - String user_id = Util.null2String(rs.getString("id")); - String upsql = " update hrmresource set loginid='" + staffCode + "_cf_" + status5count + "',workcode='"+staffCode+"_cf_"+status5count+"' where id = " + user_id +" and status = 5 "; - bb.writeLog("loginidisnotnull-upsql:" + upsql); - loginList.add(upsql); - status5count++; - } - bb.writeLog("loginidisnotnull-status5count:" + status5count); + bb.writeLog("loginidisnotnull-status5count:" + status5count); - if (status5count > 0) { - for (String upsql : loginList) { - boolean isTrue = rs.executeUpdate(upsql); - bb.writeLog("loginidisnotnull-isTrue:" + isTrue); - } + if (status5count > 0) { + for (String upsql : loginList) { + boolean isTrue = rs.executeUpdate(upsql); + bb.writeLog("loginidisnotnull-isTrue:" + isTrue); } + } - rs.executeProc("HrmResourceMaxId_Get", ""); - rs.next(); - String id = "" + rs.getInt(1); - bb.writeLog("loginidisnotnull-id:"+id); - - if(StringUtils.isNotEmpty(id)) - { - String userInsertSql = " insert into hrmresource(id,loginid,password,workcode,lastname,departmentid,subcompanyid1," + - " creater,email,mobile,jobtitle,status,dsporder,systemlanguage,createdate,lastmoddate,created,modified," + - " locationid,seclevel,createrid,lastmodid,outkey) " + - " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - - Object[] objects = new Object[]{id,staffCode,password,staffCode,lastname,deptId,subcompanyid1, - creator,email,pwdSmsTel,jobTitleId,status,loginedNum,systemlanguage,currentDate,currentDate,currentDateTime,currentDateTime, - locationid,seclevel,createrid,lastmodid,staffId} ; - bb.writeLog("userInsertSql:"+userInsertSql); - + rs.executeProc("HrmResourceMaxId_Get", ""); + rs.next(); + String id = "" + rs.getInt(1); + bb.writeLog("loginidisnotnull-id:"+id); - boolean flag = rs.executeUpdate(userInsertSql,objects); - bb.writeLog("flag:"+flag); - Map dataMap = new HashMap(); - dataMap.put("staffcodecount",datacount+""); - dataMap.put("staffcode",staffCode); - dataMap.put("syndate",nowDateTime); - dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("systable",tableName); + if(StringUtils.isNotEmpty(id)) + { + String userInsertSql = " insert into hrmresource(id,loginid,password,workcode,lastname,departmentid,subcompanyid1," + + " creater,email,mobile,jobtitle,status,dsporder,systemlanguage,createdate,lastmoddate,created,modified," + + " locationid,seclevel,createrid,lastmodid,outkey) " + + " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - dataMap.put("zxyj",userInsertSql); - dataMap.put("zxcs",convertObject2String(objects)); + Object[] objects = new Object[]{id,staffCode,password,staffCode,lastname,deptId,subcompanyid1, + creator,email,pwdSmsTel,jobTitleId,status,loginedNum,systemlanguage,currentDate,currentDate,currentDateTime,currentDateTime, + locationid,seclevel,createrid,lastmodid,staffId} ; + bb.writeLog("userInsertSql:"+userInsertSql); - if(flag){ - userid = id+""; - dataMap.put("errmessage","人员新增SQL执行成功"); - }else{ - dataMap.put("errmessage","人员新增SQL执行错误"); - } - recordErrorData(dataMap); - } - }else{ + boolean flag = rs.executeUpdate(userInsertSql,objects); + bb.writeLog("flag:"+flag); Map dataMap = new HashMap(); - dataMap.put("staffcode",staffCode); dataMap.put("staffcodecount",datacount+""); + dataMap.put("staffcode",staffCode); dataMap.put("syndate",nowDateTime); dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("errmessage","人员在系统中已存在,操作类型为A"); dataMap.put("systable",tableName); - recordErrorData(dataMap); - String context = "人员staffname:"+staffName+",staffcode:"+staffCode+"的员工在系统中已存在,操作类型为A,请检查数据" ; - recordErrorMessage(staffCode,context); + dataMap.put("zxyj",userInsertSql); + dataMap.put("zxcs",convertObject2String(objects)); + + if(flag){ + userid = id+""; + dataMap.put("errmessage","人员新增SQL执行成功"); + }else{ + dataMap.put("errmessage","人员新增SQL执行错误"); + } + recordErrorData(dataMap); } } }else{ if("A".equalsIgnoreCase(actType)) { - int status1count = 0; - sql = " select id from hrmresource where loginid = '"+staffCode+"' and status in(0,1,2,3) " ; + int status5count = 0; + List loginList = new ArrayList(); + sql = " select id from hrmresource where loginid like '"+staffCode+"%' " ; bb.writeLog("staff-sql:"+sql); rs.executeQuery(sql); - if(rs.next()){ - status1count++; + while (rs.next()){ + String user_id = Util.null2String(rs.getString("id")) ; + String upsql = " update hrmresource set loginid='" + staffCode + "_cf_" + status5count + "',workcode='"+staffCode+"_cf_"+status5count+"' where id = " + user_id +" "; + bb.writeLog("upsql:"+upsql); + loginList.add(upsql); + status5count ++ ; } - bb.writeLog("staff-status1count:"+status1count); - if(status1count == 0) - { - int status5count = 0; - List loginList = new ArrayList(); - sql = " select id from hrmresource where loginid like '"+staffCode+"%' and status = 5" ; - bb.writeLog("staff-sql:"+sql); - rs.executeQuery(sql); - while (rs.next()){ - String user_id = Util.null2String(rs.getString("id")) ; - String upsql = " update hrmresource set loginid='" + staffCode + "_cf_" + status5count + "',workcode='"+staffCode+"_cf_"+status5count+"' where id = " + user_id +" and status = 5"; - bb.writeLog("upsql:"+upsql); - loginList.add(upsql); - status5count ++ ; - } - bb.writeLog("staff-status5count:"+status5count); + bb.writeLog("staff-status5count:"+status5count); - if(status5count > 0){ - for(String upsql : loginList){ - boolean isTrue = rs.executeUpdate(upsql); - bb.writeLog("isTrue:"+isTrue); - } + if(status5count > 0){ + for(String upsql : loginList){ + boolean isTrue = rs.executeUpdate(upsql); + bb.writeLog("isTrue:"+isTrue); } + } - rs.executeProc("HrmResourceMaxId_Get", ""); - rs.next(); - String id = "" + rs.getInt(1); - bb.writeLog("id:"+id); - - if(StringUtils.isNotEmpty(id)) - { - String userInsertSql = " insert into hrmresource(id,loginid,password,workcode,lastname,departmentid,subcompanyid1," + - " creater,email,mobile,jobtitle,status,dsporder,systemlanguage,createdate,lastmoddate,created,modified," + - " locationid,seclevel,createrid,lastmodid,outkey) " + - " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - - Object[] objects = new Object[]{id,staffCode,password,staffCode,lastname,deptId,subcompanyid1, - creator,email,pwdSmsTel,jobTitleId,status,loginedNum,systemlanguage,currentDate,currentDate,currentDateTime,currentDateTime, - locationid,seclevel,createrid,lastmodid,staffId} ; - bb.writeLog("userInsertSql:"+userInsertSql); - - - - boolean flag = rs.executeUpdate(userInsertSql,objects); - bb.writeLog("flag:"+flag); + rs.executeProc("HrmResourceMaxId_Get", ""); + rs.next(); + String id = "" + rs.getInt(1); + bb.writeLog("id:"+id); + if(StringUtils.isNotEmpty(id)) + { + String userInsertSql = " insert into hrmresource(id,loginid,password,workcode,lastname,departmentid,subcompanyid1," + + " creater,email,mobile,jobtitle,status,dsporder,systemlanguage,createdate,lastmoddate,created,modified," + + " locationid,seclevel,createrid,lastmodid,outkey) " + + " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - Map dataMap = new HashMap(); - dataMap.put("staffcodecount",datacount+""); - dataMap.put("staffcode",staffCode); - dataMap.put("syndate",nowDateTime); - dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("systable",tableName); + Object[] objects = new Object[]{id,staffCode,password,staffCode,lastname,deptId,subcompanyid1, + creator,email,pwdSmsTel,jobTitleId,status,loginedNum,systemlanguage,currentDate,currentDate,currentDateTime,currentDateTime, + locationid,seclevel,createrid,lastmodid,staffId} ; + bb.writeLog("userInsertSql:"+userInsertSql); - dataMap.put("zxyj",userInsertSql); - dataMap.put("zxcs",convertObject2String(objects)); + boolean flag = rs.executeUpdate(userInsertSql,objects); + bb.writeLog("flag:"+flag); - if(flag){ - userid = id+""; - dataMap.put("errmessage","人员新增SQL执行成功"); - }else{ - dataMap.put("errmessage","人员新增SQL执行错误"); - } - recordErrorData(dataMap); - } - }else{ - bb.writeLog("staff-status1count22:"+status1count); Map dataMap = new HashMap(); dataMap.put("staffcodecount",datacount+""); dataMap.put("staffcode",staffCode); dataMap.put("syndate",nowDateTime); dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("errmessage","工号:"+staffCode+"的员工现为在职,无法进行新增,操作类型为A"); dataMap.put("systable",tableName); - recordErrorData(dataMap); - String context = "人员staffname:"+staffName+",staffcode:"+staffCode+"的员工在系统中已存在,操作类型为A,请检查数据" ; - recordErrorMessage(staffCode,context); + dataMap.put("zxyj",userInsertSql); + dataMap.put("zxcs",convertObject2String(objects)); + + if(flag){ + userid = id+""; + dataMap.put("errmessage","人员新增SQL执行成功"); + }else{ + dataMap.put("errmessage","人员新增SQL执行错误"); + } + recordErrorData(dataMap); } + }else if("M".equalsIgnoreCase(actType)){ int status1count = 0; @@ -1872,12 +1860,12 @@ public class RocketmqUtil { { int status5count = 0; List loginList = new ArrayList(); - sql = " select id from hrmresource where loginid like '"+staffCode+"%' and status = 5" ; + sql = " select id from hrmresource where loginid like '"+staffCode+"%' " ; bb.writeLog("staff-M-sql:"+sql); rs.executeQuery(sql); while (rs.next()){ String user_id = Util.null2String(rs.getString("id")) ; - String upsql = " update hrmresource set loginid='" + staffCode + "_cf_" + status5count + "',workcode='"+staffCode+"_cf_"+status5count+"' where id = " + user_id +" and status = 5 " ; + String upsql = " update hrmresource set loginid='" + staffCode + "_cf_" + status5count + "',workcode='"+staffCode+"_cf_"+status5count+"' where id = " + user_id +" " ; bb.writeLog("upsql-M:"+upsql); loginList.add(upsql); status5count ++ ; diff --git a/src/weaver/interfaces/dito/overtime/SendPortalOverTimeSubmitUtil.java b/src/weaver/interfaces/dito/overtime/SendPortalOverTimeSubmitUtil.java index 4cc6c9b5..cf4e9738 100644 --- a/src/weaver/interfaces/dito/overtime/SendPortalOverTimeSubmitUtil.java +++ b/src/weaver/interfaces/dito/overtime/SendPortalOverTimeSubmitUtil.java @@ -2,6 +2,7 @@ package weaver.interfaces.dito.overtime; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; import weaver.interfaces.dito.constant.Constants; import com.customization.dito.sendtodo.HttpRequestUtil; import com.customization.dito.sendtodo.SendPortalErrorUtil; @@ -44,7 +45,7 @@ public class SendPortalOverTimeSubmitUtil { RecordSet rs = new RecordSet(); String zhjkbs = "weaver.interfaces.dito.overtime.SendPortalOverTimeSubmitUtil.sendOverTimeSubmitByTodo" ; - + String message = "流程"+requestid+"超时处理," ; SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); @@ -52,12 +53,11 @@ public class SendPortalOverTimeSubmitUtil { bb.writeLog("SendPortalOverTimeSubmitUtil--sendOverTimeSubmitBytoDo"); String terminal = "1" ; String taskType = "0"; - String actionType = "2" ; String objectAction = "0"; String objectType = "0"; + String currentUserId= "1"; try { - String cus_staff = PropBean.getUfPropValue("cus_staff") ; String scopeid = "-1"; String scope = "HrmCustomFieldByInfoType" ; @@ -79,7 +79,7 @@ public class SendPortalOverTimeSubmitUtil { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid ; @@ -89,10 +89,13 @@ public class SendPortalOverTimeSubmitUtil { while (rs.next()){ count++; } + + message +=",待办数量为"+count ; bb.writeLog("sendOverTimeSubmitBytoDo--count:"+count); if(count >0){ - String currentUserId= "1"; + String actionType = "2" ; + String requestname = "" ; String workflowname = "" ; String currentNodeId = "" ; @@ -139,7 +142,7 @@ public class SendPortalOverTimeSubmitUtil { " 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 ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','7','11')) \n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" + " and t2.islasttimes = 1 \n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid ; @@ -164,6 +167,8 @@ public class SendPortalOverTimeSubmitUtil { taskObjectList.add(taskObject); } + message +=",接口actionType为"+actionType ; + requestObject.put("taskObjectList",taskObjectList); String auth = username + ":" + passwd; bb.writeLog("sendOverTimeSubmitBytoDo---requestObject:"+requestObject.toJSONString()); @@ -173,14 +178,96 @@ public class SendPortalOverTimeSubmitUtil { JSONObject msgObject = JSONObject.parseObject(msgdata); if (msgObject.containsKey("resultCode")) { String resultCode = msgObject.getString("resultCode"); + message +=",返回结果:"+resultCode ; if ("0".equals(resultCode)) { - sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,userids); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,userids,message); }else{ String resultmsg = msgObject.getString("resultMsg"); - sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userids); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userids,message); } } } + }else{ + String currentnodeid = "" ; + String currentnodetype = "" ; + String nodesql =" select t1.currentnodeid,t1.currentnodetype "+ + " from workflow_requestbase t1\n" + + " where ifnull(t1.deleted,0) <> 1 \n" + + " and t1.requestid = "+requestid ; + rs.executeQuery(nodesql); + if(rs.next()){ + currentnodeid = Util.null2String(rs.getString("currentnodeid")); + currentnodetype = Util.null2String(rs.getString("currentnodetype")); + } + + message +=",当期节点类型:"+currentnodetype ; + bb.writeLog("sendTodoDataByNode-currentnodeid:"+currentnodeid); + bb.writeLog("sendTodoDataByNode-currentnodetype:"+currentnodetype); + + if("3".equals(currentnodetype)){ + message += ",执行actionType=3" ; + String actionType = "3" ; + + String requestname = "" ; + String workflowname = "" ; + String nodeId = "" ; + String nodeName = "" ; + String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; + + bb.writeLog("monitorDelete4Requestid--sql2:"+sql); + + rs.executeQuery(sql); + if (rs.next()){ + requestname = Util.null2String(rs.getString("requestname")) ; + workflowname = Util.null2String(rs.getString("workflowname")) ; + nodeId = Util.null2String(rs.getString("nodeid")) ; + nodeName = Util.null2String(rs.getString("nodeName")) ; + } + + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("taskCode","weaver"+requestid); + requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",nodeName); + requestObject.put("ticketType",workflowname); + + String auth = username + ":" + passwd; + bb.writeLog("sendTodoDataByNode-3-requestObject:"+requestObject.toJSONString()); + + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("sendTodoDataByNode-3-msgdata:"+msgdata); + if(StringUtils.isNotBlank(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + + message += ",接口返回值:"+ msgObject; + + if(msgObject.containsKey("resultCode")){ + String resultCode = msgObject.getString("resultCode"); + if("0".equals(resultCode)){ + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,"",message); + }else{ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message); + } + } + } + }else{ + + } } } catch (Exception e) { e.printStackTrace(); diff --git a/src/weaver/interfaces/dito/robot/SendPortalRobotSubmitUtil.java b/src/weaver/interfaces/dito/robot/SendPortalRobotSubmitUtil.java index 75129a97..0192e88b 100644 --- a/src/weaver/interfaces/dito/robot/SendPortalRobotSubmitUtil.java +++ b/src/weaver/interfaces/dito/robot/SendPortalRobotSubmitUtil.java @@ -81,7 +81,7 @@ public class SendPortalRobotSubmitUtil { " 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.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid ; @@ -141,7 +141,7 @@ public class SendPortalRobotSubmitUtil { " 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 ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','7','11')) \n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" + " and t2.islasttimes = 1 \n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.requestid = "+requestid ;