From a249954a76659a40069cda9672f18a56906bd772 Mon Sep 17 00:00:00 2001 From: shilei Date: Mon, 16 Jan 2023 10:52:24 +0800 Subject: [PATCH] =?UTF-8?q?#HJ-23#=20=E6=8F=90=E4=BA=A4=E6=9C=80=E6=96=B0?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reqremark/RequestRemarkActionApi.java | 11 + .../dito/sendtodo/SendPortalToReadUtil.java | 326 +++++++++++------- .../dito/sendtodo/SendPortalTodoRunnable.java | 2 + .../dito/sendtodo/SendPortalTodoUtil.java | 50 ++- .../dito/reqremark/cmd/RequestRemarkCmd.java | 320 +++++++++++++++++ .../service/RequestRemarkService.java | 11 + .../impl/RequestRemarkServiceImpl.java | 16 + .../reqremark/web/RequestRemarkAction.java | 50 +++ .../dito/mq/HrmRocketMsgListener.java | 40 +++ .../dito/mq/HrmRocketmqServlet.java | 174 ++++++++++ .../interfaces/dito/mq/HrmRocketmqUtil.java | 71 ++++ .../interfaces/dito/mq/RocketmqUtil.java | 153 ++++---- 12 files changed, 989 insertions(+), 235 deletions(-) create mode 100644 src/com/api/dito/reqremark/RequestRemarkActionApi.java create mode 100644 src/com/engine/dito/reqremark/cmd/RequestRemarkCmd.java create mode 100644 src/com/engine/dito/reqremark/service/RequestRemarkService.java create mode 100644 src/com/engine/dito/reqremark/service/impl/RequestRemarkServiceImpl.java create mode 100644 src/com/engine/dito/reqremark/web/RequestRemarkAction.java create mode 100644 src/weaver/interfaces/dito/mq/HrmRocketMsgListener.java create mode 100644 src/weaver/interfaces/dito/mq/HrmRocketmqServlet.java create mode 100644 src/weaver/interfaces/dito/mq/HrmRocketmqUtil.java diff --git a/src/com/api/dito/reqremark/RequestRemarkActionApi.java b/src/com/api/dito/reqremark/RequestRemarkActionApi.java new file mode 100644 index 00000000..1012f373 --- /dev/null +++ b/src/com/api/dito/reqremark/RequestRemarkActionApi.java @@ -0,0 +1,11 @@ +package com.api.dito.reqremark; + + + +import com.engine.dito.reqremark.web.RequestRemarkAction; + +import javax.ws.rs.Path; + +@Path("/dito/reqremark") +public class RequestRemarkActionApi extends RequestRemarkAction { +} diff --git a/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java b/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java index 864ffaab..c0676a56 100644 --- a/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalToReadUtil.java @@ -37,7 +37,7 @@ public class SendPortalToReadUtil { Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); BaseBean bb = new BaseBean(); - bb.writeLog("sendToReadDataByCreateNode"); + bb.writeLog("SendPortalToReadUtil-sendToReadDataByCreateNode"); String terminal = "1" ; String actionType = "0" ; @@ -58,7 +58,7 @@ public class SendPortalToReadUtil { " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + " and t1.requestid = "+requestid ; - bb.writeLog("sendTodoDataByNode--sql:"+sql); + bb.writeLog("sendToReadDataByNode--sql:"+sql); rs.executeQuery(sql); if (rs.next()){ String workflowid = Util.null2String(rs.getString("workflowid")) ; @@ -87,7 +87,7 @@ public class SendPortalToReadUtil { requestObject.put("center",center); requestObject.put("title",title); requestObject.put("creator",creator); - requestObject.put("taskCode",taskCode); + requestObject.put("nodeId",nodeId); requestObject.put("taskType",taskType); requestObject.put("actionType",actionType); @@ -102,24 +102,46 @@ public class SendPortalToReadUtil { requestObject.put("ticketType",workflowname); } - sql = " select t2.userid,h1.loginid,h1.email\n" + + sql = " select t2.userid,h1.loginid,h1.email,t2.isremark,t1.requestid,t2.nodeid \n" + " from workflow_requestbase t1\n" + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t2.isremark in ('9')\n" + + " and t2.isremark in ('8','9')\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.requestid = "+requestid; + " and t2.requestid = "+requestid +" and nodeid = "+noideid ; - bb.writeLog("sendTodoDataByNode--sql:"+sql); + bb.writeLog("sendToReadDataByNode--sql:"+sql); rs.executeQuery(sql); while (rs.next()){ - String usercode = Util.null2String(rs.getString("loginid")) ; - bb.writeLog("usercode--sql:"+usercode); + String userid = Util.null2String(rs.getString("userid")) ; + String lcid = Util.null2String(rs.getString("requestid")) ; + String nodeid = Util.null2String(rs.getString("nodeid")) ; + String email = Util.null2String(rs.getString("email")) ; + + bb.writeLog("SendPortalToReadUtil-usercode--sql:"+usercode); JSONObject taskObject = new JSONObject(); + taskObject.put("userid",userid); + taskObject.put("usercode",usercode); + taskObject.put("lcid",lcid); + taskObject.put("nodeid",nodeid); + taskObject.put("email",email); + taskObjectList.add(taskObject); + } + + 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', '8', '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); + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid 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+ + " and t2.nodeid = " + noideid ; + bb.writeLog("sendToReadDataByNode--countSql:"+countSql); rs.executeQuery(countSql); while (rs.next()){ count++; } - bb.writeLog("sendTodoDataByNode--count:"+count); + bb.writeLog("SendPortalToReadUtil-sendToReadDataByNode--count:"+count); - if(count == 0) - { - String actionType = "2" ; - String objectAction = "0" ; + if(count == 0) { + String actionType = "2"; + String objectAction = "0"; String objectType = "0"; JSONArray taskObjectList = new JSONArray(); @@ -222,109 +264,129 @@ public class SendPortalToReadUtil { " t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" + " from workflow_requestbase t1\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid " + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t1.requestid = "+requestid ; - bb.writeLog("sendTodoDataByNode--sql:"+sql); - + " and t1.requestid = " + requestid; + bb.writeLog("SendPortalToReadUtil-sendToReadDataByNode--sql:" + sql); rs.executeQuery(sql); - if (rs.next()){ - String workflowid = Util.null2String(rs.getString("workflowid")) ; + if (rs.next()) { + String workflowid = Util.null2String(rs.getString("workflowid")); String workflowname = getWorkflowname(workflowid); - String title = Util.null2String(rs.getString("requestname")) ; + String title = Util.null2String(rs.getString("requestname")); requestname = title; - String creator = Util.null2String(rs.getString("loginid")) ; - String taskCode = Util.null2String(rs.getString("taskcode")) ; - String nodeId = Util.null2String(rs.getString("nodeid")) ; - String workcode = Util.null2String(rs.getString("loginid")) ; - String createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; + String creator = Util.null2String(rs.getString("loginid")); + String taskCode = Util.null2String(rs.getString("taskcode")); + String nodeId = Util.null2String(rs.getString("nodeid")); + String workcode = Util.null2String(rs.getString("loginid")); + String createdate = Util.null2String(rs.getString("createdate")); + String createtime = Util.null2String(rs.getString("createtime")); + String messageTitle = Util.null2String(rs.getString("requestname")); messageTitle = getShortMessageTitle(messageTitle); - String messageContent = Util.null2String(rs.getString("requestname")) ; - - String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; - String app_requestUrl = bpm_app_requesturl+requestid; - app_requestUrl = URLEncoder.encode(app_requestUrl,"UTF-8"); - String urlApp = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl; - String urlDing = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl; - String nodeName = Util.null2String(rs.getString("nodeName")) ; - - requestObject.put("center",center); - requestObject.put("title",title); - requestObject.put("creator",creator); - requestObject.put("taskCode",taskCode); - requestObject.put("nodeId",nodeId); - requestObject.put("taskType",taskType); - requestObject.put("actionType",actionType); - requestObject.put("createDate",createdate+" "+createtime); - requestObject.put("messageTitle",messageTitle); - requestObject.put("messageContent",messageContent); - 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 messageContent = Util.null2String(rs.getString("requestname")); + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String app_requestUrl = bpm_app_requesturl + requestid; + app_requestUrl = URLEncoder.encode(app_requestUrl, "UTF-8"); + String urlApp = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl; + String urlDing = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl; + String nodeName = Util.null2String(rs.getString("nodeName")); + + requestObject.put("center", center); + requestObject.put("title", title); + requestObject.put("creator", creator); + requestObject.put("taskCode", taskCode + "_cs_" + nodeId); + requestObject.put("nodeId", nodeId); + requestObject.put("taskType", taskType); + requestObject.put("actionType", actionType); + requestObject.put("createDate", createdate + " " + createtime); + requestObject.put("messageTitle", messageTitle); + requestObject.put("messageContent", messageContent); + requestObject.put("terminal", terminal); + requestObject.put("urlPc", urlPc); + requestObject.put("urlApp", urlApp); + requestObject.put("urlDing", urlDing); + requestObject.put("nodeName", nodeName); + requestObject.put("ticketType", workflowname); } - sql = " select t2.userid,h1.loginid,h1.email\n" + + sql = " select t2.userid,h1.loginid,h1.email\n" + " from workflow_requestbase t1\n" + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t2.isremark in ('9')\n" + + " and t2.isremark in ('8','9')\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.REQUESTID = "+requestid; + " and t2.REQUESTID = " + requestid + " and nodeid=" + noideid; - bb.writeLog("sendTodoDataByNode--sql:"+sql); + bb.writeLog("SendPortalToReadUtil-sendToReadDataByNode--sql:" + sql); rs.executeQuery(sql); - while (rs.next()){ - - String usercode = Util.null2String(rs.getString("loginid")) ; - String objectCode = usercode ; - String operatorCode = usercode ; - + while (rs.next()) { + String usercode = Util.null2String(rs.getString("loginid")); + String userid = Util.null2String(rs.getString("userid")); + String lcid = Util.null2String(rs.getString("requestid")); + String nodeid = Util.null2String(rs.getString("nodeid")); + String email = Util.null2String(rs.getString("email")); + + bb.writeLog("SendPortalToReadUtil-usercode--sql:" + usercode); JSONObject taskObject = new JSONObject(); - taskObject.put("objectAction",objectAction); - taskObject.put("objectType",objectType); - taskObject.put("objectCode",objectCode); - taskObject.put("objectId",objectId); - 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 ; - } + taskObject.put("userid", userid); + taskObject.put("usercode", usercode); + taskObject.put("lcid", lcid); + taskObject.put("nodeid", nodeid); + taskObject.put("email", email); + taskObjectList.add(taskObject); } - requestObject.put("taskObjectList",taskObjectList); - } - String auth = username + ":" + passwd; - //bb.writeLog("requestObject:"+requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); - bb.writeLog("msgdata:"+msgdata); - if(!"".equals(msgdata)){ - JSONObject msgObject = JSONObject.parseObject(msgdata); - //{"resultCode":"1","resultMsg":"No Result"} - if(msgObject.containsKey("resultCode")){ - String resultCode = msgObject.getString("resultCode"); - if("0".equals(resultCode)){ - - bb.writeLog("emailArray:"+emailArray); - if(StringUtils.isNotEmpty(emailArray)) - { - String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time"; - String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time"; - sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); + for (int i = 0; i < taskObjectList.size(); i++) { + JSONObject dataObject = taskObjectList.getJSONObject(i); + String usercode = dataObject.getString("usercode"); + String userid = dataObject.getString("userid"); + String lcid = dataObject.getString("lcid"); + String nodeid = dataObject.getString("nodeid"); + String email = dataObject.getString("email"); + + JSONObject taskObject = new JSONObject(); + String objectCode = usercode; + String operatorCode = usercode; + taskObject.put("objectAction", objectAction); + taskObject.put("objectType", objectType); + taskObject.put("objectCode", objectCode); + taskObject.put("objectId", objectId); + taskObject.put("operatorCode", operatorCode); + JSONArray taskArray = new JSONArray(); + taskArray.add(taskObject); + + requestObject.put("taskCode", lcid + "_cs_" + nodeid + "_" + userid); + requestObject.put("taskObjectList", taskObjectList); + + String auth = username + ":" + passwd; + bb.writeLog("SendPortalToReadUtil--requestObject:" + requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth); + bb.writeLog("SendPortalToReadUtil-msgdata:" + msgdata); + if (!"".equals(msgdata)) { + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if (msgObject.containsKey("resultCode")) { + String resultCode = msgObject.getString("resultCode"); + if ("0".equals(resultCode)) { + Matcher matcher = regex.matcher(email); + if (matcher.matches()) { + emailArray += StringUtils.isEmpty(emailArray) ? email : "," + email; + } + } } } } + + bb.writeLog("emailArray:" + emailArray); + if (StringUtils.isNotEmpty(emailArray)) { + String notificationSubject = "You have a new to-read list:" + requestname + ",Please handle it in time"; + String notificationContent = "You have a new to-read list:" + requestname + ",Please handle it in time"; + sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent); + } } } catch (Exception e) { e.printStackTrace(); diff --git a/src/com/customization/dito/sendtodo/SendPortalTodoRunnable.java b/src/com/customization/dito/sendtodo/SendPortalTodoRunnable.java index d363fe0a..f91e5b8b 100644 --- a/src/com/customization/dito/sendtodo/SendPortalTodoRunnable.java +++ b/src/com/customization/dito/sendtodo/SendPortalTodoRunnable.java @@ -27,6 +27,8 @@ public class SendPortalTodoRunnable implements Runnable{ SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); SendPortalDoneUtil sendPortalDoneUtil = new SendPortalDoneUtil(); SendPortalToReadUtil sendPortalToReadUtil = new SendPortalToReadUtil(); + + String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); String portal_doneurl = PropBean.getUfPropValue("portal_doneurl"); String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl"); diff --git a/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java b/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java index e1169366..b138b772 100644 --- a/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java +++ b/src/com/customization/dito/sendtodo/SendPortalTodoUtil.java @@ -33,8 +33,6 @@ public class SendPortalTodoUtil { String emailArray = ""; String requestname = ""; - String requestremark = "" ; - String actionType = "0" ; String terminal = "1" ; String taskType = "0"; @@ -49,20 +47,21 @@ public class SendPortalTodoUtil { try { int userid = user.getUID(); String sql =" select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t2.nodeid,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" + - " t1.requestid as taskcode,d1.nodename,h1.email\n" + - " from workflow_requestbase t1\n" + - " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + - " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ - " left join (select id, lastname,loginid,email from hrmresource where status = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + - " where t2.userid in ("+userid+") \n" + - " and (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1', '5', '8', '7', '11'))\n" + - " and (ifnull(t1.currentstatus, -1) = -1 or (ifnull(t1.currentstatus, -1) = 0 and t1.creater in ("+userid+"))) \n" + - " and t2.islasttimes = 1 \n" + - " and (t2.isprocessing = '' or t2.isprocessing is null) \n" + - " and t2.requestid = "+requestId ; - + " t1.requestid as taskcode,d1.nodename,h1.email\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " left join (select id, lastname,loginid,email from hrmresource where status = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + + " where t2.userid in ("+userid+") \n" + + " and (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','7','8','9','11'))\n" + + " and (ifnull(t1.currentstatus, -1) = -1 or (ifnull(t1.currentstatus, -1) = 0 and t1.creater in ("+userid+"))) \n" + + " and t2.islasttimes = 1 \n" + + " and (t2.isprocessing = '' or t2.isprocessing is null) \n" + + " and t2.requestid = "+requestId ; + + bb.writeLog("sendTodoDataByCreater-sql:"+sql); rs.executeQuery(sql); if (rs.next()){ String workflowid = Util.null2String(rs.getString("workflowid")) ; @@ -92,6 +91,8 @@ public class SendPortalTodoUtil { // String urlDing = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl; String nodeName = Util.null2String(rs.getString("nodeName")) ; + String isremark = Util.null2String(rs.getString("isremark")) ; + requestObject.put("center",center); requestObject.put("title",title); requestObject.put("creator",creator); @@ -176,7 +177,6 @@ public class SendPortalTodoUtil { HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); SendMailUtil sendMailUtil = new SendMailUtil(); - SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); RecordSet rs = new RecordSet(); @@ -261,7 +261,7 @@ public class SendPortalTodoUtil { " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + " 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', '7', '11'))\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; @@ -289,20 +289,18 @@ public class SendPortalTodoUtil { emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ; } } - requestObject.put("taskObjectList",taskObjectList); String auth = username + ":" + passwd; - //bb.writeLog("requestObject:"+requestObject.toJSONString()); +// bb.writeLog("sendTodoDataByCreater-requestObject:"+requestObject.toJSONString()); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); - bb.writeLog("msgdata:"+msgdata); + bb.writeLog("sendTodoDataByCreater-msgdata:"+msgdata); if(!"".equals(msgdata)){ JSONObject msgObject = JSONObject.parseObject(msgdata); //{"resultCode":"1","resultMsg":"No Result"} if(msgObject.containsKey("resultCode")){ String resultCode = msgObject.getString("resultCode"); if("0".equals(resultCode)){ - bb.writeLog("emailArray:"+emailArray); if(StringUtils.isNotEmpty(emailArray)) { @@ -310,8 +308,6 @@ public class SendPortalTodoUtil { String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time"; sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); } - }else{ - sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); } } } @@ -356,7 +352,7 @@ public class SendPortalTodoUtil { " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid 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', '8', '7', '11'))\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+ @@ -494,7 +490,7 @@ public class SendPortalTodoUtil { " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + " 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', '7', '11'))\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1', '5', '7','8','9','11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + " and t2.REQUESTID = "+requestid; @@ -644,7 +640,7 @@ public class SendPortalTodoUtil { " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + " 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', '7', '11'))\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; diff --git a/src/com/engine/dito/reqremark/cmd/RequestRemarkCmd.java b/src/com/engine/dito/reqremark/cmd/RequestRemarkCmd.java new file mode 100644 index 00000000..ee1366d5 --- /dev/null +++ b/src/com/engine/dito/reqremark/cmd/RequestRemarkCmd.java @@ -0,0 +1,320 @@ +package com.engine.dito.reqremark.cmd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.customization.dito.sendtodo.HttpRequestUtil; +import com.customization.dito.sendtodo.SendMailUtil; +import com.customization.dito.sendtodo.SendPortalErrorUtil; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import com.time.util.DateUtil; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.dito.comInfo.PropBean; +import weaver.interfaces.dito.job.WorkflowAuthModelingUtil; + +import java.net.URLEncoder; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class RequestRemarkCmd extends AbstractCommonCommand> { + @Override + public BizLogContext getLogContext() { + return null; + } + + public RequestRemarkCmd(Map params, User user) { + this.params = params; + this.user = user; + } + + @Override + public Map execute(CommandContext commandContext) { + WorkflowAuthModelingUtil workflowAuthModelingUtil = new WorkflowAuthModelingUtil(); + String lcids = Util.null2String(params.get("lcids")) ; + Map map = workflowAuthModelingUtil.executeData(lcids); + return map; + } + + /*** + * 流程提交到写个节点, + * 如果流程提交节点还有待办,意味着流程还是提交节点,只是提交节点一个人删除待办 + * 如果流程提交节点没有待办,意味着流程流转到下个节点,那么查询出来的待办都有新增,并且删除提交节点的所有待办 + * @param requestid + */ + public void sendTodoDataByNode(String requestid,String userid,String nodeid,String type) + { + 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"); + + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + + + RecordSet rs = new RecordSet(); + + BaseBean bb = new BaseBean(); + bb.writeLog("sendTodoDataByNode"); + + String terminal = "1" ; + String taskType = "0"; + String objectId = "" ; + + String actionType = "2" ; + String objectAction = "0" ; + String objectType = "0"; + + + try { + + JSONArray taskObjectList = new JSONArray(); + int count = 0; + String sql =" select t2.userid,h1.loginid,h1.email,t2.isremark,t1.requestid,t2.nodeid\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t2.isremark in ('2','9')\n" + + " and t2.preisremark in ('8','9')\n" + + " and t2.requestid = "+requestid +" and t2.userid in ("+userid+") and t2.nodeid = "+nodeid; + + bb.writeLog("sendTodoDataByNode--sql:"+sql); + rs.executeQuery(sql); + if (rs.next()){ + + String usercode = Util.null2String(rs.getString("loginid")) ; + 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",objectId); + taskObject.put("operatorCode",operatorCode); + taskObjectList.add(taskObject); + + count++; + } + + if(count>0){ + + JSONObject requestObject = new JSONObject(); + sql = " select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" + + " t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; + bb.writeLog("sendTodoDataByNode--sql:"+sql); + rs.executeQuery(sql); + if (rs.next()){ + String workflowid = Util.null2String(rs.getString("workflowid")) ; + String workflowname = getWorkflowname(workflowid); + String title = Util.null2String(rs.getString("requestname")) ; + String creator = Util.null2String(rs.getString("loginid")) ; + String taskCode = Util.null2String(rs.getString("taskcode")) ; + String nodeId = Util.null2String(rs.getString("nodeid")) ; + String workcode = Util.null2String(rs.getString("loginid")) ; + String createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + messageTitle = getShortMessageTitle(messageTitle); + String messageContent = Util.null2String(rs.getString("requestname")) ; + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String app_requestUrl = bpm_app_requesturl+requestid; + app_requestUrl = URLEncoder.encode(app_requestUrl,"UTF-8"); + String urlApp = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+bpm_app_requesturl+requestid; + bb.writeLog("urlDing", urlDing); +// String urlDing = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl; + String nodeName = Util.null2String(rs.getString("nodeName")) ; + + requestObject.put("center",center); + requestObject.put("title",title); + requestObject.put("creator",creator); + requestObject.put("taskCode",taskCode+"_cs_"+nodeId+"_"+userid); + requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",createdate+" "+createtime); + requestObject.put("messageTitle",messageTitle); + requestObject.put("messageContent",messageContent); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",nodeName); + requestObject.put("ticketType",workflowname); + } + + requestObject.put("taskObjectList",taskObjectList); + String auth = username + ":" + passwd; + //bb.writeLog("requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("msgdata:"+msgdata); + if(!"".equals(msgdata)) + { + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if(msgObject.containsKey("resultCode")){ + String resultCode = msgObject.getString("resultCode"); + if("0".equals(resultCode)){ + + }else{ + + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /*** + * + * @param requestid + * @param nodeid + * @param userid + */ + public void sendPortalDoneData(String requestid, String nodeid,String userid) { + + String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); + String portal_doneurl = PropBean.getUfPropValue("portal_doneurl"); + String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl"); + String username = PropBean.getUfPropValue("username"); + String passwd = PropBean.getUfPropValue("passwd"); + String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl"); + + BaseBean bb = new BaseBean(); + try { + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + RecordSet rs = new RecordSet(); + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String isRecall = "1"; + String actionType = "0"; + String workcode = ""; + String sql = "select loginid from hrmresource where id = '" + userid + "'"; + rs.execute(sql); + while (rs.next()) { + workcode = Util.null2String(rs.getString("loginid")); + } + + String center = PropBean.getUfPropValue("center"); + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String app_requestUrl = bpm_app_requesturl + requestid; + app_requestUrl = URLEncoder.encode(app_requestUrl, "UTF-8"); + String urlApp = "[newtab]" + bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl; + String replace = bpm_app_workflowurl.replace("/bpm", ""); + String urlDing = replace+bpm_app_requesturl+requestid; + + + int count = 0; + sql = " select t2.userid,h1.loginid,h1.email,t2.isremark,t1.requestid,t2.nodeid\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t2.isremark in ('2','9')\n" + + " and t2.preisremark in ('8','9')\n" + + " and t2.requestid = "+requestid +" and t2.userid in ("+userid+") and t2.nodeid = "+nodeid; + + rs.execute(sql); + if (rs.next()) { + count++; + } + + if(count > 0) + { + String title = "" ; + String workflowname = "" ; + String creator = ""; + sql = " select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" + + " t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid " + + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = " + requestid; + rs.execute(sql); + if (rs.next()) { + title = Util.null2String(rs.getString("requestname")); + String workflowid = Util.null2String(rs.getString("workflowid")); + workflowname = getWorkflowname(workflowid); + //title = getShortMessageTitle(title); + creator = Util.null2String(rs.getString("loginid")); + } + + JSONObject requestObject = new JSONObject(); + requestObject.put("center", center); + requestObject.put("taskCode", requestid+"-cstj-"+nodeid+"-"+userid); + requestObject.put("nodeId", nodeid); + requestObject.put("ticketType", workflowname); + requestObject.put("title", title); + requestObject.put("creator", creator); + requestObject.put("processStaff", workcode); + requestObject.put("processTime", processTime); + requestObject.put("isRecall", isRecall); + requestObject.put("actionType", actionType); + requestObject.put("urlPC", urlPc); + requestObject.put("urlApp", urlApp); + requestObject.put("urlDing",urlDing); + + String auth = username + ":" + passwd; + bb.writeLog("done requestObject:" + requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth); + bb.writeLog("done msgdata:" + msgdata); + if(StringUtils.isNotEmpty(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if(msgObject.containsKey("resultCode")){ + String resultCode = msgObject.getString("resultCode"); + if(!"0".equals(resultCode)){ + //sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + } + } + } + } + } catch (Exception e) { + bb.writeLog("done Exception"); + bb.writeLog(e.getMessage()); + } + } + + + + private String getShortMessageTitle(String messageTitle) { + if (messageTitle.length() > 20) { + messageTitle = messageTitle.substring(0, 17) + "..."; + } + return messageTitle; + } + + private String getWorkflowname(String id){ + RecordSet rs = new RecordSet(); + String name = ""; + rs.executeQuery("select workflowname from workflow_base where id = ?",id); + while (rs.next()){ + name = Util.null2String(rs.getString("workflowname")); + } + return name; + } + + +} diff --git a/src/com/engine/dito/reqremark/service/RequestRemarkService.java b/src/com/engine/dito/reqremark/service/RequestRemarkService.java new file mode 100644 index 00000000..90ca5e0f --- /dev/null +++ b/src/com/engine/dito/reqremark/service/RequestRemarkService.java @@ -0,0 +1,11 @@ +package com.engine.dito.reqremark.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface RequestRemarkService { + + Map requestRemarkSubmit(Map datas,User user); + +} diff --git a/src/com/engine/dito/reqremark/service/impl/RequestRemarkServiceImpl.java b/src/com/engine/dito/reqremark/service/impl/RequestRemarkServiceImpl.java new file mode 100644 index 00000000..fb0a01b1 --- /dev/null +++ b/src/com/engine/dito/reqremark/service/impl/RequestRemarkServiceImpl.java @@ -0,0 +1,16 @@ +package com.engine.dito.reqremark.service.impl; + +import com.engine.core.impl.Service; +import com.engine.dito.reqremark.cmd.RequestRemarkCmd; +import com.engine.dito.reqremark.service.RequestRemarkService; +import weaver.hrm.User; + +import java.util.Map; + +public class RequestRemarkServiceImpl extends Service implements RequestRemarkService { + + @Override + public Map requestRemarkSubmit(Map datas, User user) { + return commandExecutor.execute(new RequestRemarkCmd(datas,user)); + } +} diff --git a/src/com/engine/dito/reqremark/web/RequestRemarkAction.java b/src/com/engine/dito/reqremark/web/RequestRemarkAction.java new file mode 100644 index 00000000..f6e4e778 --- /dev/null +++ b/src/com/engine/dito/reqremark/web/RequestRemarkAction.java @@ -0,0 +1,50 @@ +package com.engine.dito.reqremark.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.dito.createauth.service.CreateAuthService; +import com.engine.dito.createauth.service.impl.CreateAuthServiceImpl; +import com.engine.dito.reqremark.service.RequestRemarkService; +import com.engine.dito.reqremark.service.impl.RequestRemarkServiceImpl; +import weaver.general.BaseBean; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +public class RequestRemarkAction { + + public RequestRemarkService getService(){ + return (RequestRemarkService) ServiceUtil.getService(RequestRemarkServiceImpl.class); + } + + @GET + @Path("/reqsubmit") + @Produces({MediaType.TEXT_PLAIN}) + public String requestRemarkSubmit(@Context HttpServletRequest request, @Context HttpServletResponse response) { + BaseBean bb = new BaseBean(); + bb.writeLog("createAuthData"); + Map apidatas = new HashMap(); + try{ + User user = HrmUserVarify.getUser(request, response); + Map dataMap = ParamUtil.request2Map(request); + apidatas.putAll(getService().requestRemarkSubmit(dataMap,user)); + apidatas.put("api_status",true); + }catch (Exception e){ + apidatas.put("api_status",false); + apidatas.put("api_errormsg","exception:"+e.getMessage()); + } + bb.writeLog("apidatas:"+ JSONObject.toJSONString(apidatas)); + return JSONObject.toJSONString(apidatas); + + } +} diff --git a/src/weaver/interfaces/dito/mq/HrmRocketMsgListener.java b/src/weaver/interfaces/dito/mq/HrmRocketMsgListener.java new file mode 100644 index 00000000..8dabdc14 --- /dev/null +++ b/src/weaver/interfaces/dito/mq/HrmRocketMsgListener.java @@ -0,0 +1,40 @@ +package weaver.interfaces.dito.mq; + +import org.apache.commons.lang3.StringUtils; +import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; +import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; +import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently; +import org.apache.rocketmq.common.message.MessageExt; +import weaver.general.BaseBean; + +import java.io.UnsupportedEncodingException; +import java.util.List; + + +public class HrmRocketMsgListener implements MessageListenerConcurrently { + @Override + public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext consumeConcurrentlyContext) { + BaseBean bb = new BaseBean(); + MessageExt msg = msgs.get(0); + + HrmRocketmqUtil hrmRocketmqUtil = new HrmRocketmqUtil(); + + try { + + bb.writeLog("Consumer---6----"+new String(msg.getBody())); + String msgdata = new String(msg.getBody(),"UTF-8"); + if(StringUtils.isBlank(msgdata)) + { + int errcount = hrmRocketmqUtil.updateOrgData(msgdata); + bb.writeLog("Consumer---errcount---:"+errcount); + } + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + bb.writeLog("Consumer---UnsupportedEncodingException---e:"+e); + return ConsumeConcurrentlyStatus.RECONSUME_LATER; + } + return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; + + } + +} diff --git a/src/weaver/interfaces/dito/mq/HrmRocketmqServlet.java b/src/weaver/interfaces/dito/mq/HrmRocketmqServlet.java new file mode 100644 index 00000000..52d88523 --- /dev/null +++ b/src/weaver/interfaces/dito/mq/HrmRocketmqServlet.java @@ -0,0 +1,174 @@ +package weaver.interfaces.dito.mq; + + +import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; +import org.apache.rocketmq.client.exception.MQClientException; +import org.apache.rocketmq.common.consumer.ConsumeFromWhere; +import org.apache.rocketmq.common.protocol.heartbeat.MessageModel; +import weaver.file.Prop; +import weaver.general.BaseBean; +import weaver.general.GCONST; +import weaver.general.InitServer; +import weaver.interfaces.dito.comInfo.PropBean; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; + + +public class HrmRocketmqServlet extends HttpServlet { + + + private boolean isMainIp = false;//是否为主节点 + + private boolean isSampleMode = false;//是否为单机(启用ridis并且配置了主节点的,则不是单机,否则认为是集群环境) + + @Override + public void init() throws ServletException + { + + BaseBean bb = new BaseBean(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + + bb.writeLog("initiated---进入时间:"+sdf.format(new Date())); + bb.writeLog("***** resource model initiated"); + bb.writeLog("***** resource model initiated"); + bb.writeLog("***** resource model initiated"); + + try{ + isMainIp = isMainIp();//计算是否为集群中的主节点 + isSampleMode = isSampleMode();//判断是否为单机 + bb.writeLog("isMainIp:"+isMainIp); + bb.writeLog("isSampleMode:"+isSampleMode); + + if(isSampleMode){ + initData(); + }else{ + if (isMainIp) { + //则调用service方法加载设置,重新获取workflowid相关超时设置OvertimeEntity + initData(); + } + } + + }catch (Exception e){ + bb.writeLog("Consumer resource model initiated--MQClientException:"+e); + } + + bb.writeLog("***** resource model initiated"); + bb.writeLog("***** resource model initiated"); + bb.writeLog("***** resource model initiated"); + } + + + public void initData(){ + BaseBean bb = new BaseBean(); + PropBean propBean = new PropBean(); + + try { +// String consumerGroup = propBean.getUfPropValueStatic("consumerGroup"); +// bb.writeLog("consumerGroup:" + consumerGroup); + DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("portal-producer-group_oaweaver"); +// String namesrvAddr = propBean.getUfPropValueStatic("namesrvAddr"); +// bb.writeLog("namesrvAddr:" + namesrvAddr); + consumer.setNamesrvAddr("10.26.3.152:9306;10.26.3.151:9306;10.26.3.150:9306"); +// String instanceName = propBean.getUfPropValueStatic("instanceName"); +// bb.writeLog("instanceName:" + instanceName); + consumer.setInstanceName("BD_MD_SUBSCRIBE"); + consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET); +// String topic = propBean.getUfPropValueStatic("topic"); +// String subExpression = propBean.getUfPropValueStatic("subExpression"); +// bb.writeLog("topic:" + topic); +// bb.writeLog("subExpression:" + subExpression); +// String authid = propBean.getUfPropValueStatic("authid"); +// String authpwd = propBean.getUfPropValueStatic("authpwd"); +// String clustername = propBean.getUfPropValueStatic("clustername"); +// String tenantid = propBean.getUfPropValueStatic("tenantid"); +// bb.writeLog("authid:" + authid); +// bb.writeLog("authpwd:" + authpwd); +// bb.writeLog("clustername:" + clustername); +// bb.writeLog("tenantid:" + tenantid); + consumer.subscribe("BD_MD_SUBSCRIBE", "PC_OA"); + consumer.setAuthID("DITOMQ_WhaleCloud"); + consumer.setAuthPWD("9oXAWfZ&"); + consumer.setClusterName("CTGMQ_CO3T"); + consumer.setTenantID("100000"); + + consumer.setConsumeThreadMin(1); + consumer.setConsumeThreadMax(1); + consumer.setConsumeMessageBatchMaxSize(1); + + consumer.setMessageModel(MessageModel.BROADCASTING); + consumer.registerMessageListener(new HrmRocketMsgListener()); + consumer.start(); + bb.writeLog("Consumer88Started."); + + } catch (MQClientException var13) { + bb.writeLog("Consumer resource model initiated--MQClientException:" + var13); + } + } + + /** + * 实现 HttpServlet 的 doGet 方法,不作任何操作 + * @param request + * @param response + * @throws ServletException + * @throws IOException + */ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doPost(request, response); + } + + /** + * 实现 HttpServlet 的 doPost 方法,不作任何操作 + * @param request + * @param response + * @throws ServletException + * @throws IOException + */ + + @Override + public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + } + + @Override + public void destroy() + { + // 什么也不做 + } + + + private boolean isMainIp() { + new BaseBean().writeLog("超时判断主节点"); + String mainControlIp = ""; + ArrayList hostIps = new InitServer().getRealIp(); + Prop prop = Prop.getInstance(); + mainControlIp = prop.getPropValue(GCONST.getConfigFile(), "MainControlIP"); + if (hostIps == null || hostIps.size() == 0) { + new BaseBean().writeLog("System Init Error:Cannot get local Ip address,This may cause scripts or Timed task not run! "); + } else { + new BaseBean().writeLog("System Init Message:mainControlIp=" + mainControlIp + " localIp:" + hostIps.toString()); + } + if ((!"".equals(mainControlIp) && hostIps.contains(mainControlIp)) || "".equals(mainControlIp)) { + return true; + } + return false; + } + + public boolean isSampleMode() { + BaseBean base = new BaseBean(); + boolean redis_flag = "1".equals(base.getPropValue("weaver_new_session", "status")); + boolean mainIp_flag = !"".equals(base.getPropValue("weaver", "MainControlIP")); + base.writeLog("超时判断是否为集群环境:redis_flag======"+redis_flag); + base.writeLog("超时判断是否为集群环境:mainIp_flag======="+mainIp_flag); + return !(redis_flag && mainIp_flag); + } + + + +} diff --git a/src/weaver/interfaces/dito/mq/HrmRocketmqUtil.java b/src/weaver/interfaces/dito/mq/HrmRocketmqUtil.java new file mode 100644 index 00000000..53794aae --- /dev/null +++ b/src/weaver/interfaces/dito/mq/HrmRocketmqUtil.java @@ -0,0 +1,71 @@ +package weaver.interfaces.dito.mq; + +import com.alibaba.fastjson.JSONArray; +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.interfaces.dito.comInfo.PropBean; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +public class HrmRocketmqUtil { + private Lock lock = new ReentrantLock(); + public int updateOrgData(String data) + { + BaseBean bb = new BaseBean(); + int errcount = 0; + try{ + lock.lock(); + RecordSet rs = new RecordSet(); + + String cus_staff = PropBean.getUfPropValue("cus_staff") ; + + JSONObject jsonObject = JSONObject.parseObject(data); + if(jsonObject.containsKey("masterInfo")) + { + JSONObject masterInfoObject = jsonObject.getJSONObject("masterInfo"); + if(masterInfoObject.containsKey("datas")){ + JSONArray datasArray = jsonObject.getJSONArray("datas"); + for(int i=0;i dataMap = new HashMap(); - dataMap.put("syndate",nowDateTime); - dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("errmessage","更新人员岗位sql执行错误"); - dataMap.put("systable",tableName); - recordErrorData(dataMap); - } - }else if("D".equals(actType)){ - jobtitlesId = "" ; - String updateUserJobSql = " update hrmresource set jobtitle=?,modified=?,modifier=? where id=? "; - bb.writeLog("updateUserJobSql:"+updateUserJobSql); - boolean flag = rs.executeUpdate(updateUserJobSql,new Object[]{jobtitlesId,currentDateTime,updateStaff,userId}); - bb.writeLog(" updateUserJobFlag: "+flag); - if(!flag){ - Map dataMap = new HashMap(); - dataMap.put("syndate",nowDateTime); - dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("errmessage","删除人员岗位sql执行错误"); - dataMap.put("systable",tableName); - recordErrorData(dataMap); + if("A".equals(actType) || "M".equals(actType)) + { + String updateUserJobSql = " update hrmresource set jobtitle=?,modified=?,modifier=? where id=? "; + bb.writeLog("updateUserJobSql:"+updateUserJobSql); + boolean flag = rs.executeUpdate(updateUserJobSql,new Object[]{jobtitlesId,currentDateTime,updateStaff,userId}); + bb.writeLog(" updateUserJobFlag: "+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","更新人员岗位sql执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else if("D".equals(actType)){ + jobtitlesId = "" ; + String updateUserJobSql = " update hrmresource set jobtitle=?,modified=?,modifier=? where id=? "; + bb.writeLog("updateUserJobSql:"+updateUserJobSql); + boolean flag = rs.executeUpdate(updateUserJobSql,new Object[]{jobtitlesId,currentDateTime,updateStaff,userId}); + bb.writeLog(" updateUserJobFlag: "+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","删除人员岗位sql执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员岗位中岗位或者人员ID在系统中不存在"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); } - }else{ + }catch (Exception e){ Map dataMap = new HashMap(); dataMap.put("syndate",nowDateTime); dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("errmessage","人员岗位中岗位或者人员ID在系统中不存在"); + dataMap.put("errmessage","人员岗位异常:"+e.getMessage()); dataMap.put("systable",tableName); recordErrorData(dataMap); } - }catch (Exception e){ - Map dataMap = new HashMap(); - dataMap.put("syndate",nowDateTime); - dataMap.put("reqmessage",jsonObject.toJSONString()); - dataMap.put("errmessage","人员岗位异常:"+e.getMessage()); - dataMap.put("systable",tableName); - recordErrorData(dataMap); } } } @@ -914,9 +915,9 @@ public class RocketmqUtil { JSONObject jsonObject = jsonArray.getJSONObject(i); //系统岗位编码 String sysPostType = Util.null2String(jsonObject.get("sysPostType")); - if("1300".equals(sysPostType)) + String sysPostCode = Util.null2String(jsonObject.get("sysPostCode")); + if("1300".equals(sysPostType) && sysPostCode.startsWith("MSS_CTO")) { - String sysPostCode = Util.null2String(jsonObject.get("sysPostCode")); //系统岗位名称 String sysPostName = Util.null2String(jsonObject.get("sysPostName")); //部门编码