diff --git a/WEB-INF/prop/PORTAL_INFO.properties b/WEB-INF/prop/PORTAL_INFO.properties index ba26c4c0..91e93a7b 100644 --- a/WEB-INF/prop/PORTAL_INFO.properties +++ b/WEB-INF/prop/PORTAL_INFO.properties @@ -12,7 +12,7 @@ portal_homepage = http://172.16.25.133/portal-web/# ###以下是和人员同步mq相关的 ##RocketMq的consumerGroup cbec-consumer-group_nj_133 -consumerGroup = coc-consumer-group_portal_133 +consumerGroup = cbec-consumer-group_nj_133 ##RocketMq的namesrvAddr namesrvAddr = 172.16.84.183:9001;172.16.84.187:9001 @@ -26,10 +26,15 @@ topic = dataSync_topic_nj ##RocketMq的subExpression subExpression = BPM +defaultJobCode = Staff + ###以下是和门户待办相关的 ##门户待办接口 portal_todourl = http://172.16.25.133/portal-web/centerTodo/sync +##门户已办接口 +portal_doneurl = http://172.16.25.133/portal-web/centerDone/sync + ##待办的用户名 username = admin @@ -54,12 +59,29 @@ ecology_app_root = /app/weaver/ecology ###以下是和邮件相关的 +## 是否开启email消息推送 0=不启用,1 = 启用 +emailenable = 0; + emailUrl = http://10.26.4.136:80/api/rest + emailMethod = sendNotification -eventCode = -notificationType = EMAIL -channel = OA +emailEventCode = MSS_OA_EMAIL_SEND + +emailNotificationType = EMAIL + +emailChannel = OA + +emailVersion = 1.0 + +emailTokenUrl = http://10.26.4.136:80/api/oauth2/apigAuthorize + +emainAppCode = OA + +emailAppSecret = fb84e1689ea357b2 + +emailResponseType = token + +emailPrivateKey = MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCr1guc7ypKVF0l8mwOdV0c11X4ITjvscVYNbLxoXe6jb2Cm/yDyyAAvPw3NdoePYIw16GGQ739MVPoP0TU6KQE0gYg9hfFNCdOCyGWx+asD/jzYb6gQAmlwgzfC/SgUvVx/blC5mpE3ZcPNsxifRU5DcJkxVA10DPJfLOBctl4y49IC/FfuljytekaA0avbWdEbLJ9JZaHhKumEAVlC/wTCW4qAf28MICmX/28ZLvffJ7jO+P1WvrJHKgtu3kUrlFkfpJQIAxRXVqoL4BoBsCYq6f2UA1B4gyABHB/f0fDjWH7j4XWVq+jwIrvsr/bW/QJEwMRLsEcrtHgPnD5pPqJAgMBAAECggEAFCayTvGXJodVMx2GQX3O8RJpoQMYX7ebunf1p7N1THnRxw7O4o/ADYYcF8dncFNrQJoQ9aNdFOOjgOFmi4dKsMwGbvgdGoG+uD7C7iE8MmJfIf+M8NMBrqAejUukIOcJpJgKEUffH3tS+zREbKpZgkrUSKgA+4aShCbtEBmtWiZnXkOsC6JufcU4xxgzYePUQPvaOemBTdtGUK9CDYpkm4ozfjy6CNeA+oeAjXonMb8M1B+7qucZpKKJytJYxRnLsylQ3oKM0nSIpzhYTHdTBJbQMk+gty2jTgUIfdjt0sW2HL71n0Pt2rI66UcIEi2mz6lVbhAA1YNqzBBX056h2QKBgQDwNhlxTEPwz025eaEpYlyhJpMdnUtaPawAH0Ucabu9B0zWPy0L1tB8GAJdTSwtZ0y2Apo+YOSR3Oc3k54zYAZQXTN+j5uSO2NbKDHRehHVF0gLkfZBVRJJxiRNZ9qVR+kuQYD2ly7fndZjrJ0E+ilnUclJAmHtl/NPqr7/HASnzQKBgQC3IW9RN03l9UhsgXTEvqkTok0xFkoD0R0QuNq1ICOOggIkfEDxHGarRNozkCg6qor98J4whqFT3P825eOG+jRLJL0C3rLVJ15wbWM+SHzfhFNyQFlc2CohPImQvAc808KvH4gkv7HxaWP+8M/35UmAEIkx6KV1OAMp47foct7prQKBgQCujxHUJJDmyS75TusP0Nvxe7/C8JBWpqR8fjzR1gBI8Koks0o/5T4iP6xQMwmcgQnc5m1CUVUorngUCiEXwns0IVaPbTqnfKLKFp6FVIjq6n0/czWZ6oFcvTGaUpMkklpgc9eM2vaEKAYo7sI4YLZ/z45PkPyrFRYKWdFsP+ceLQKBgQCNR74ZahEu14yIKVdscar++reSpx9y0mEaBYK1OZY02xfMDhAL811BxFySaySeHfQc9QUVasgLavN55uEhwOWXE0C+dhCBYV36XmmyIzozNmMqQXqvphTaj1mRz33F75jCghEGSN1+4U/D3wSSutF5e0hcuJ7tT8khCA1Zx0UyAQKBgCVtltsh+bMIlnjKARhIab2G13WkrR89ZEqjRIrFOeCyr5bD3yn/tAJZ7HIhr6/YkjmYi/T04QcElpctPFLHi0wS6Hy9mP2pBI+PIit9mzK3sXoqR/Bew/KqzJF6Ow5iVXiQfcHaYaI9C1EN7iMtVK6h/KWlKjg4Pv+9Xu5INimd -version = 1.0 diff --git a/src/com/customization/sendtodo/HttpRequestUtil.java b/src/com/customization/sendtodo/HttpRequestUtil.java new file mode 100644 index 00000000..ababad8d --- /dev/null +++ b/src/com/customization/sendtodo/HttpRequestUtil.java @@ -0,0 +1,51 @@ +package com.customization.sendtodo; + +import com.sun.jersey.core.util.Base64; +import okhttp3.*; +import weaver.general.BaseBean; + +import java.io.IOException; + +public class HttpRequestUtil extends BaseBean{ + + /*** + * + * @param dataJson + * @return + */ + public String doPostByAuth(String portal_todourl,String dataJson,String auth){ + //"http://172.16.25.133/portal-web/centerTodo/sync" + BaseBean bb = new BaseBean(); + + String authorization = "Basic "+new String(Base64.encode(auth)); + bb.writeLog("authorization:"+authorization); + bb.writeLog("portal_todourl:"+portal_todourl); + bb.writeLog("dataJson:"+dataJson); + bb.writeLog("auth:"+auth); + + String msgData = "" ; + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, dataJson); + Request request = new Request.Builder() + .url(portal_todourl) + .method("POST", body) + .addHeader("Authorization", authorization) + .addHeader("Content-Type", "application/json") + .build(); + try { + Response response = client.newCall(request).execute(); + + bb.writeLog("response.code():"+response.code()); + bb.writeLog("response.body():"+response.body().string()); + + if(response!=null && response.code() == 200){ + msgData = response.body().string(); + } + } catch (IOException e) { + e.printStackTrace(); + } + return msgData; + } + +} diff --git a/src/com/customization/sendtodo/SendPortalDoneUtil.java b/src/com/customization/sendtodo/SendPortalDoneUtil.java new file mode 100644 index 00000000..b99b6629 --- /dev/null +++ b/src/com/customization/sendtodo/SendPortalDoneUtil.java @@ -0,0 +1,437 @@ +package com.customization.sendtodo; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; + +public class SendPortalDoneUtil { + + /*** + * 流程发起节点提交下个节点,产生发起人一个已办 + * @param requestid + * @param noideid + * @param user + */ + public void sendDoneDataByCreateNode(String requestid,String noideid,User user,String portal_doneurl,String username,String passwd,String bpm_workflowurl,String center){ + + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + RecordSet rs = new RecordSet(); + JSONObject requestObject = new JSONObject(); + BaseBean bb = new BaseBean(); + bb.writeLog("sendTodoDataByCreateNode"); + + String ticketType = center ; + String terminal = "1" ; + String actionType = "0" ; + String taskType = "0"; + String objectAction = "0" ; + String objectType = "0"; + String objectId = "" ; + + try { + JSONArray taskObjectList = new JSONArray(); + String sql =" select 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 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 createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + String messageContent = Util.null2String(rs.getString("requestname")) ; + + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + 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",ticketType); + } + + String usercode = user.getLoginid(); + 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); + taskObjectList.add(taskObject); + + requestObject.put("taskObjectList",taskObjectList); + + String auth = username + ":" + passwd; + bb.writeLog("requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl,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)){ + sendPortalErrorUtil.doCreateSendPortalDoneErrorInfo(); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /*** + * 流程提交到写个节点, + * 如果流程提交节点还有待办,意味着流程还是提交节点,只是提交节点一个人删除待办 + * 如果流程提交节点没有待办,意味着流程流转到下个节点,那么查询出来的待办都有新增,并且删除提交节点的所有待办 + * @param requestid + * @param noideid + * @param user + */ + public void sendDoneDataByNode(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + JSONObject requestObject = new JSONObject(); + RecordSet rs = new RecordSet(); + + BaseBean bb = new BaseBean(); + bb.writeLog("sendTodoDataByNode"); + + String ticketType = center ; + String terminal = "1" ; + String taskType = "0"; + String objectId = "" ; + + try { + + int count = 0 ; + String countSql =" select t2.userid,h1.loginid\n" + + " 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', '8', '9', '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 sql =" select 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); + + if(count >0){ + + JSONArray taskObjectList = new JSONArray(); + String actionType = "1" ; + String objectAction = "1" ; + String objectType = "0"; + + rs.executeQuery(sql); + if (rs.next()){ + 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 createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + String messageContent = Util.null2String(rs.getString("requestname")) ; + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + 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",ticketType); + } + + String objectCode = user.getLoginid() ; + String operatorCode = user.getLoginid() ; + 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); + requestObject.put("taskObjectList",taskObjectList); + + }else{ + String actionType = "2" ; + String objectAction = "0" ; + String objectType = "0"; + + JSONArray taskObjectList = new JSONArray(); + rs.executeQuery(sql); + if (rs.next()){ + + 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 createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + String messageContent = Util.null2String(rs.getString("requestname")) ; + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + 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",ticketType); + } + + 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 = '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; + bb.writeLog("sendTodoDataByNode--sql:"+sql); + rs.executeQuery(sql); + while (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); + } + 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)){ + sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /*** + * 操作退回时执行,就是退回到某个节点,意味着查询出来的待办要新增,提交节点的所有待办都有删除 + * + * @param requestid + * @param noideid + * @param user + */ + public void sendTodoDataByReject(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ + + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + JSONObject requestObject = new JSONObject(); + + BaseBean bb = new BaseBean(); + bb.writeLog("sendTodoDataByReject"); + RecordSet rs = new RecordSet(); + String ticketType = center ; + String terminal = "1" ; + String taskType = "0"; + String objectAction = "0" ; + String objectType = "0"; + String objectId = "" ; + try { + + String actionType = "2" ; + JSONArray taskObjectList = new JSONArray(); + + String sql =" select 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("sendTodoDataByReject--sql:"+sql); + rs.executeQuery(sql); + if (rs.next()){ + + 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 createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + String messageContent = Util.null2String(rs.getString("requestname")) ; + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + 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",ticketType); + } + + 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 = '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; + + bb.writeLog("sendTodoDataByReject--sql:"+sql); + rs.executeQuery(sql); + while (rs.next()){ + + String usercode = Util.null2String(rs.getString("loginid")) ; + 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); + 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)){ + sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/src/com/customization/sendtodo/SendPortalErrorUtil.java b/src/com/customization/sendtodo/SendPortalErrorUtil.java new file mode 100644 index 00000000..d1abd28d --- /dev/null +++ b/src/com/customization/sendtodo/SendPortalErrorUtil.java @@ -0,0 +1,17 @@ +package com.customization.sendtodo; + + +import weaver.general.BaseBean; + +public class SendPortalErrorUtil { + + public void doCreateSendPortalTodoErrorInfo(){ + BaseBean bb = new BaseBean(); + bb.writeLog("doCreateSendPortalTodoErrorInfo"); + } + + public void doCreateSendPortalDoneErrorInfo(){ + BaseBean bb = new BaseBean(); + bb.writeLog("doCreateSendPortalDoneErrorInfo"); + } +} diff --git a/src/com/customization/sendtodo/SendPortalTodoCmd.java b/src/com/customization/sendtodo/SendPortalTodoCmd.java index 1c169db7..ac8ca2ed 100644 --- a/src/com/customization/sendtodo/SendPortalTodoCmd.java +++ b/src/com/customization/sendtodo/SendPortalTodoCmd.java @@ -1,11 +1,11 @@ package com.customization.sendtodo; +import com.engine.common.util.ParamUtil; import com.engine.core.cfg.annotation.CommandDynamicProxy; import com.engine.core.interceptor.AbstractCommandProxy; import com.engine.core.interceptor.Command; import com.engine.workflow.cmd.requestForm.RequestSubmitCmd; import com.engine.workflow.entity.requestForm.RequestOperationResultBean; -import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; @@ -25,7 +25,7 @@ public class SendPortalTodoCmd extends AbstractCommandProxy> RequestSubmitCmd requestSubmitCmd = (RequestSubmitCmd)targetCommand; //获取被代理对象的参数 //对参数做预处理 - //requestSubmitCmd.writeLog("requestSubmitCmd params222======"+params); + BaseBean bb = new BaseBean(); HttpServletRequest request = requestSubmitCmd.getRequest(); @@ -33,11 +33,23 @@ public class SendPortalTodoCmd extends AbstractCommandProxy> String workflowid = Util.null2String(request.getParameter("workflowid")).trim(); String src = Util.null2String(request.getParameter("src")).trim(); String nodeid = Util.null2String(request.getParameter("nodeid")); + String workflowname = Util.null2String(request.getParameter("workflowname")); + + Map params = ParamUtil.request2Map(request); + params.forEach((t,u)-> { + System.out.println(t+"->>>"+u); + }); + + for (Map.Entry entry : params.entrySet()) { + System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); + } + User user = requestSubmitCmd.getUser(); bb.writeLog("requestid:"+requestid); bb.writeLog("workflowid:"+workflowid); bb.writeLog("src:"+src); bb.writeLog("nodeid:"+nodeid); + bb.writeLog("workflowname:"+workflowname); //参数回写 //执行标准的业务处理 diff --git a/src/com/customization/sendtodo/SendPortalTodoRunnable.java b/src/com/customization/sendtodo/SendPortalTodoRunnable.java index 4897cbb7..0fcec13c 100644 --- a/src/com/customization/sendtodo/SendPortalTodoRunnable.java +++ b/src/com/customization/sendtodo/SendPortalTodoRunnable.java @@ -1,20 +1,12 @@ package com.customization.sendtodo; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; -import weaver.interfaces.util.SendMailUtil; -import java.util.regex.Matcher; -import java.util.regex.Pattern; public class SendPortalTodoRunnable implements Runnable{ - public String EMAIL_REGEX_DEFAULT = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; - private String src; private String new_requestid; private String requestid; @@ -32,655 +24,27 @@ public class SendPortalTodoRunnable implements Runnable{ @Override public void run() { + SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); + SendPortalDoneUtil sendPortalDoneUtil = new SendPortalDoneUtil(); + BaseBean bb = new BaseBean(); String portal_todourl = bb.getPropValue("PORTAL_INFO","portal_todourl"); String username = bb.getPropValue("PORTAL_INFO","username"); String passwd = bb.getPropValue("PORTAL_INFO","passwd"); String center = bb.getPropValue("PORTAL_INFO","center"); String bpm_workflowurl = bb.getPropValue("PORTAL_INFO","bpm_workflowurl"); - + String portal_doneurl = bb.getPropValue("PORTAL_INFO","portal_doneurl"); if(Util.getIntValue(requestid) == -1 && "save".equals(src)){ - sendTodoDataByCreater(new_requestid,user,portal_todourl,username,passwd,bpm_workflowurl,center); + sendPortalTodoUtil.sendTodoDataByCreater(new_requestid,user,portal_todourl,username,passwd,bpm_workflowurl,center); }else if(Util.getIntValue(requestid) == -1 && "submit".equals(src)){ - sendTodoDataByCreateNode(new_requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); + sendPortalTodoUtil.sendTodoDataByCreateNode(new_requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); + sendPortalDoneUtil.sendDoneDataByCreateNode(new_requestid,nodeid,user,portal_doneurl,username,passwd,bpm_workflowurl,center); }else if(Util.getIntValue(requestid)> 0 && "submit".equals(src)){ - sendTodoDataByNode(requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); + sendPortalTodoUtil.sendTodoDataByNode(requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); }else if(Util.getIntValue(requestid)> 0 && "reject".equals(src)){ - sendTodoDataByReject(requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); - } - } - - - /*** - * - * @param requestId - * @param user - */ - public void sendTodoDataByCreater(String requestId, User user, String portal_todourl, String username, String passwd, String bpm_workflowurl, String center){ - - SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); - SendMailUtil sendMailUtil = new SendMailUtil(); - BaseBean bb = new BaseBean(); - RecordSet rs = new RecordSet(); - - JSONArray emailArray = new JSONArray(); - - String requestname = ""; - String requestremark = "" ; - - String actionType = "0" ; - String terminal = "1" ; - String taskType = "0"; - String objectAction = "0" ; - String objectType = "0"; - String objectId = "" ; - - String ticketType = center ; - Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); - - JSONObject requestObject = new JSONObject(); - try { - int userid = user.getUID(); - String sql =" select 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', '9', '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 ; - - rs.executeQuery(sql); - if (rs.next()){ - - 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 createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; - String messageContent = Util.null2String(rs.getString("requestname")) ; - - String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestId ; - String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestId; - String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestId; - 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",ticketType); - - JSONArray taskObjectList = new JSONArray(); - JSONObject taskObject = new JSONObject(); - - String objectCode = creator ; - - String operatorCode = creator ; - - taskObject.put("objectAction",objectAction); - taskObject.put("objectType",objectType); - taskObject.put("objectCode",objectCode); - taskObject.put("objectId",objectId); - taskObject.put("operatorCode",operatorCode); - taskObjectList.add(taskObject); - - requestObject.put("taskObjectList",taskObjectList); - - String email = Util.null2String(rs.getString("email")) ; - Matcher matcher = regex.matcher(email); - if(matcher.matches()){ - emailArray.add(email); - } - } - - bb.writeLog("dataJsonnew:"+requestObject.toJSONString()); -// String username = "admin"; -// String passwd = "Uportal_123"; -// String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ; - String auth = username + ":" + passwd; - String msgdata = sendPortalTodoUtil.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)){ - - System.out.println(emailArray.toJSONString()); - String notificationSubject = ""; - String notificationContent = "" ; - sendMailUtil.sendMail(requestId,emailArray.toJSONString(),notificationSubject,notificationContent); - - }else{ - sendPortalTodoUtil.doCreateSendPortalTodoErrorInfo(); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - - /*** - * - * @param requestid - * @param noideid - * @param user - */ - public void sendTodoDataByCreateNode(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ - - SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); - SendMailUtil sendMailUtil = new SendMailUtil(); - RecordSet rs = new RecordSet(); - - JSONObject requestObject = new JSONObject(); - JSONArray emailArray = new JSONArray(); - Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); - - BaseBean bb = new BaseBean(); - bb.writeLog("sendTodoDataByCreateNode"); - - String ticketType = center ; - String terminal = "1" ; - String actionType = "0" ; - String taskType = "0"; - String objectAction = "0" ; - String objectType = "0"; - String objectId = "" ; - - try { - JSONArray taskObjectList = new JSONArray(); - String sql =" select 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 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 createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; - String messageContent = Util.null2String(rs.getString("requestname")) ; - - - - String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; - String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - 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",ticketType); - } - - 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 = '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; - - bb.writeLog("sendTodoDataByNode--sql:"+sql); - rs.executeQuery(sql); - while (rs.next()){ - - String usercode = Util.null2String(rs.getString("loginid")) ; - 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); - taskObjectList.add(taskObject); - - String email = Util.null2String(rs.getString("email")) ; - Matcher matcher = regex.matcher(email); - if(matcher.matches()){ - emailArray.add(email); - } - } - - requestObject.put("taskObjectList",taskObjectList); - - String auth = username + ":" + passwd; - bb.writeLog("requestObject:"+requestObject.toJSONString()); - String msgdata = sendPortalTodoUtil.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)){ - - System.out.println(emailArray.toJSONString()); - String notificationSubject = ""; - String notificationContent = "" ; - sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); - - }else{ - sendPortalTodoUtil.doCreateSendPortalTodoErrorInfo(); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - - /*** - * - * @param requestid - * @param noideid - * @param user - */ - public void sendTodoDataByNode(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ - SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); - SendMailUtil sendMailUtil = new SendMailUtil(); - JSONObject requestObject = new JSONObject(); - RecordSet rs = new RecordSet(); - - BaseBean bb = new BaseBean(); - bb.writeLog("sendTodoDataByNode"); - - String ticketType = center ; - String terminal = "1" ; - String taskType = "0"; - - JSONArray emailArray = new JSONArray(); - Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); - try { - String actionType = "" ; - int count = 0 ; - String sql =" select t2.userid,h1.loginid\n" + - " 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', '8', '9', '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--sql:"+sql); - rs.executeQuery(sql); - while (rs.next()){ - count++; - } - bb.writeLog("sendTodoDataByNode--count:"+count); - if(count >0){ - - JSONArray taskObjectList = new JSONArray(); - actionType = "1" ; - - sql = " select 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 + - " and t1.currentnodeid = " + noideid ; - - bb.writeLog("sendTodoDataByNode--sql:"+sql); - - rs.executeQuery(sql); - if (rs.next()){ - - 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 createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; - String messageContent = Util.null2String(rs.getString("requestname")) ; - - - - String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; - String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - 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",ticketType); - } - - JSONObject taskObject = new JSONObject(); - String objectAction = "1" ; - String objectType = "0"; - String objectCode = user.getLoginid() ; - String objectId = "" ; - String operatorCode = user.getLoginid() ; - - 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); - - }else{ - - JSONArray taskObjectList = new JSONArray(); - actionType = "2" ; - - sql = " select 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 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 createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; - String messageContent = Util.null2String(rs.getString("requestname")) ; - - String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; - String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - 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",ticketType); - } - - 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 = '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; - bb.writeLog("sendTodoDataByNode--sql:"+sql); - rs.executeQuery(sql); - while (rs.next()){ - - String usercode = Util.null2String(rs.getString("loginid")) ; - JSONObject taskObject = new JSONObject(); - String objectAction = "0" ; - String objectType = "0"; - String objectCode = usercode ; - String objectId = "" ; - String operatorCode = usercode ; - - 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")) ; - Matcher matcher = regex.matcher(email); - if(matcher.matches()){ - emailArray.add(email); - } - } - requestObject.put("taskObjectList",taskObjectList); - } - -// String username = "admin"; -// String passwd = "Uportal_123"; -// String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ; - //"Basic YWRtaW46VXBvcnRhbF8xMjM=" - - String auth = username + ":" + passwd; - bb.writeLog("requestObject:"+requestObject.toJSONString()); - String msgdata = sendPortalTodoUtil.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)){ - - System.out.println(emailArray.toJSONString()); - String notificationSubject = ""; - String notificationContent = "" ; - sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); - - }else{ - sendPortalTodoUtil.doCreateSendPortalTodoErrorInfo(); - } - } - } - } catch (Exception e) { - e.printStackTrace(); + sendPortalTodoUtil.sendTodoDataByReject(requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); } } - - /*** - * 操作退回时执行 - * @param requestid - * @param noideid - * @param user - */ - public void sendTodoDataByReject(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ - - SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); - SendMailUtil sendMailUtil = new SendMailUtil(); - JSONObject requestObject = new JSONObject(); - JSONArray emailArray = new JSONArray(); - BaseBean bb = new BaseBean(); - bb.writeLog("sendTodoDataByReject"); - RecordSet rs = new RecordSet(); - String ticketType = center ; - String terminal = "1" ; - String taskType = "0"; - String objectAction = "0" ; - String objectType = "0"; - String objectId = "" ; - try { - - String actionType = "2" ; - - JSONArray taskObjectList = new JSONArray(); - - String sql =" select 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("sendTodoDataByReject--sql:"+sql); - rs.executeQuery(sql); - if (rs.next()){ - - 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 createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; - String messageContent = Util.null2String(rs.getString("requestname")) ; - - String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; - String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - 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",ticketType); - } - - sql = " select t2.userid,h1.loginid\n" + - " 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', '8', '9', '7', '11'))\n" + - " and t2.islasttimes = 1\n" + - " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.REQUESTID = "+requestid; - bb.writeLog("sendTodoDataByReject--sql:"+sql); - rs.executeQuery(sql); - while (rs.next()){ - - String usercode = Util.null2String(rs.getString("loginid")) ; - 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); - taskObjectList.add(taskObject); - } - - requestObject.put("taskObjectList",taskObjectList); - - String auth = username + ":" + passwd; - bb.writeLog("requestObject:"+requestObject.toJSONString()); - String msgdata = sendPortalTodoUtil.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)){ - - System.out.println(emailArray.toJSONString()); - String notificationSubject = ""; - String notificationContent = "" ; - sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); - - }else{ - sendPortalTodoUtil.doCreateSendPortalTodoErrorInfo(); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - - } - } diff --git a/src/com/customization/sendtodo/SendPortalTodoUtil.java b/src/com/customization/sendtodo/SendPortalTodoUtil.java index 5e124a71..a829da1c 100644 --- a/src/com/customization/sendtodo/SendPortalTodoUtil.java +++ b/src/com/customization/sendtodo/SendPortalTodoUtil.java @@ -1,56 +1,649 @@ package com.customization.sendtodo; -import com.sun.jersey.core.util.Base64; -import okhttp3.*; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import weaver.conn.RecordSet; import weaver.general.BaseBean; - -import java.io.IOException; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.util.SendMailUtil; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class SendPortalTodoUtil { + public static String EMAIL_REGEX_DEFAULT = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; + /*** - * - * @param portal_todourl - * @param dataJson - * @param auth - * @return + * 流程发起节点,发起保存不提交,发起节点有待办,下个节点没有待办 + * @param requestId + * @param user + */ + public void sendTodoDataByCreater(String requestId, User user, String portal_todourl, String username, String passwd, String bpm_workflowurl, String center){ + + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendMailUtil sendMailUtil = new SendMailUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + JSONArray emailArray = new JSONArray(); + + String requestname = ""; + String requestremark = "" ; + + String actionType = "0" ; + String terminal = "1" ; + String taskType = "0"; + String objectAction = "0" ; + String objectType = "0"; + String objectId = "" ; + + String ticketType = center ; + Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); + + JSONObject requestObject = new JSONObject(); + try { + int userid = user.getUID(); + String sql =" select 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', '9', '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 ; + + rs.executeQuery(sql); + if (rs.next()){ + + 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 createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + String messageContent = Util.null2String(rs.getString("requestname")) ; + + requestname = messageTitle; + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestId ; + String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestId; + String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestId; + 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",ticketType); + + JSONArray taskObjectList = new JSONArray(); + JSONObject taskObject = new JSONObject(); + + String objectCode = creator ; + + String operatorCode = creator ; + + taskObject.put("objectAction",objectAction); + taskObject.put("objectType",objectType); + taskObject.put("objectCode",objectCode); + taskObject.put("objectId",objectId); + taskObject.put("operatorCode",operatorCode); + taskObjectList.add(taskObject); + + requestObject.put("taskObjectList",taskObjectList); + + String email = Util.null2String(rs.getString("email")) ; + Matcher matcher = regex.matcher(email); + if(matcher.matches()){ + emailArray.add(email); + } + } + + bb.writeLog("dataJsonnew:"+requestObject.toJSONString()); +// String username = "admin"; +// String passwd = "Uportal_123"; +// String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ; + 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)){ + + System.out.println(emailArray.toJSONString()); + String notificationSubject = ""+requestname; + String notificationContent = ""+requestname ; + sendMailUtil.sendMail(requestId,emailArray.toJSONString(),notificationSubject,notificationContent); + + }else{ + sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /*** + * 流程发起节点,提交到下个节点,发起节点没有待办,下个节点有待办 + * @param requestid + * @param noideid + * @param user + */ + public void sendTodoDataByCreateNode(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ + + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendMailUtil sendMailUtil = new SendMailUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + RecordSet rs = new RecordSet(); + + String requestname = ""; + String requestremark = "" ; + + JSONObject requestObject = new JSONObject(); + JSONArray emailArray = new JSONArray(); + Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); + + BaseBean bb = new BaseBean(); + bb.writeLog("sendTodoDataByCreateNode"); + + String ticketType = center ; + String terminal = "1" ; + String actionType = "0" ; + String taskType = "0"; + String objectAction = "0" ; + String objectType = "0"; + String objectId = "" ; + + try { + JSONArray taskObjectList = new JSONArray(); + String sql =" select 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 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 createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + String messageContent = Util.null2String(rs.getString("requestname")) ; + + requestname = messageTitle; + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + 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",ticketType); + } + + 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 = '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; + + bb.writeLog("sendTodoDataByNode--sql:"+sql); + rs.executeQuery(sql); + while (rs.next()){ + + String usercode = Util.null2String(rs.getString("loginid")) ; + 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); + taskObjectList.add(taskObject); + + String email = Util.null2String(rs.getString("email")) ; + Matcher matcher = regex.matcher(email); + if(matcher.matches()){ + emailArray.add(email); + } + } + + 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)){ + + System.out.println(emailArray.toJSONString()); + String notificationSubject = ""+requestname; + String notificationContent = ""+requestname ; + sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); + }else{ + sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /*** + * 流程提交到写个节点, + * 如果流程提交节点还有待办,意味着流程还是提交节点,只是提交节点一个人删除待办 + * 如果流程提交节点没有待办,意味着流程流转到下个节点,那么查询出来的待办都有新增,并且删除提交节点的所有待办 + * @param requestid + * @param noideid + * @param user */ - public String doPostByAuth(String portal_todourl,String dataJson,String auth){ - //"http://172.16.25.133/portal-web/centerTodo/sync" + public void sendTodoDataByNode(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendMailUtil sendMailUtil = new SendMailUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + JSONObject requestObject = new JSONObject(); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog("sendTodoDataByNode"); - String authorization = "Basic "+new String(Base64.encode(auth)); - bb.writeLog("authorization:"+authorization); - bb.writeLog("portal_todourl:"+portal_todourl); - bb.writeLog("dataJson:"+dataJson); - bb.writeLog("auth:"+auth); - - String msgData = "" ; - OkHttpClient client = new OkHttpClient().newBuilder().build(); - MediaType mediaType = MediaType.parse("application/json"); - RequestBody body = RequestBody.create(mediaType, dataJson); - Request request = new Request.Builder() - .url(portal_todourl) - .method("POST", body) - .addHeader("Authorization", authorization) - .addHeader("Content-Type", "application/json") - .build(); + String ticketType = center ; + String terminal = "1" ; + String taskType = "0"; + String objectId = "" ; + + JSONArray emailArray = new JSONArray(); + Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); try { - Response response = client.newCall(request).execute(); - bb.writeLog("response.code():"+response.code()); - bb.writeLog("response.body():"+response.body().string()); + int count = 0 ; + String countSql =" select t2.userid,h1.loginid\n" + + " 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', '8', '9', '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 sql =" select 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); + + if(count >0){ + + JSONArray taskObjectList = new JSONArray(); + String actionType = "1" ; + String objectAction = "1" ; + String objectType = "0"; + + rs.executeQuery(sql); + if (rs.next()){ + 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 createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + String messageContent = Util.null2String(rs.getString("requestname")) ; + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String nodeName = Util.null2String(rs.getString("nodeName")) ; - if(response!=null && response.code() == 200){ - msgData = response.body().string(); + 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",ticketType); + } + + String objectCode = user.getLoginid() ; + String operatorCode = user.getLoginid() ; + 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); + requestObject.put("taskObjectList",taskObjectList); + + }else{ + String actionType = "2" ; + String objectAction = "0" ; + String objectType = "0"; + + JSONArray taskObjectList = new JSONArray(); + rs.executeQuery(sql); + if (rs.next()){ + + 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 createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + String messageContent = Util.null2String(rs.getString("requestname")) ; + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + 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",ticketType); + } + + 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 = '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; + bb.writeLog("sendTodoDataByNode--sql:"+sql); + rs.executeQuery(sql); + while (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); + + String email = Util.null2String(rs.getString("email")) ; + Matcher matcher = regex.matcher(email); + if(matcher.matches()){ + emailArray.add(email); + } + } + 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)){ + + System.out.println(emailArray.toJSONString()); + String notificationSubject = ""; + String notificationContent = "" ; + sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); + + }else{ + sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + } + } } - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); } - return msgData; } - public void doCreateSendPortalTodoErrorInfo(){ + /*** + * 操作退回时执行,就是退回到某个节点,意味着查询出来的待办要新增,提交节点的所有待办都有删除 + * + * @param requestid + * @param noideid + * @param user + */ + public void sendTodoDataByReject(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ + + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + SendMailUtil sendMailUtil = new SendMailUtil(); + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + + JSONObject requestObject = new JSONObject(); + JSONArray emailArray = new JSONArray(); + Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); + + BaseBean bb = new BaseBean(); + bb.writeLog("sendTodoDataByReject"); + RecordSet rs = new RecordSet(); + String ticketType = center ; + String terminal = "1" ; + String taskType = "0"; + String objectAction = "0" ; + String objectType = "0"; + String objectId = "" ; + try { + + String actionType = "2" ; + JSONArray taskObjectList = new JSONArray(); + + String sql =" select 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("sendTodoDataByReject--sql:"+sql); + rs.executeQuery(sql); + if (rs.next()){ + + 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 createdate = Util.null2String(rs.getString("createdate")) ; + String createtime = Util.null2String(rs.getString("createtime")) ; + String messageTitle = Util.null2String(rs.getString("requestname")) ; + String messageContent = Util.null2String(rs.getString("requestname")) ; + + String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; + String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + 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",ticketType); + } + + 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 = '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; + + bb.writeLog("sendTodoDataByReject--sql:"+sql); + rs.executeQuery(sql); + while (rs.next()){ + + String usercode = Util.null2String(rs.getString("loginid")) ; + 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); + taskObjectList.add(taskObject); + + String email = Util.null2String(rs.getString("email")) ; + Matcher matcher = regex.matcher(email); + if(matcher.matches()){ + emailArray.add(email); + } + + } + + 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)){ + + System.out.println(emailArray.toJSONString()); + String notificationSubject = ""; + String notificationContent = "" ; + sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); + + }else{ + sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } } + } diff --git a/src/weaver/interfaces/mq/RocketmqServlet.java b/src/weaver/interfaces/mq/RocketmqServlet.java index 83f5383c..923caf16 100644 --- a/src/weaver/interfaces/mq/RocketmqServlet.java +++ b/src/weaver/interfaces/mq/RocketmqServlet.java @@ -34,7 +34,6 @@ public class RocketmqServlet extends HttpServlet { bb.writeLog("***** resource model initiated"); try{ - //DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("portal-producer-group_nj"); //DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("cbec-consumer-group_nj_133"); //consumer.setNamesrvAddr("172.16.84.183:9001;172.16.84.187:9001"); @@ -43,25 +42,31 @@ public class RocketmqServlet extends HttpServlet { String consumerGroup = bb.getPropValue("PORTAL_INFO","consumerGroup"); bb.writeLog("consumerGroup:"+consumerGroup); - DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(consumerGroup ); + DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(consumerGroup); String namesrvAddr = bb.getPropValue("PORTAL_INFO","namesrvAddr"); bb.writeLog("namesrvAddr:"+namesrvAddr); consumer.setNamesrvAddr(namesrvAddr); String instanceName = bb.getPropValue("PORTAL_INFO","instanceName"); + bb.writeLog("instanceName:"+instanceName); consumer.setInstanceName(instanceName); consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET); + //consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET); String topic = bb.getPropValue("PORTAL_INFO","topic"); String subExpression = bb.getPropValue("PORTAL_INFO","subExpression"); - consumer.subscribe(topic, subExpression); + bb.writeLog("topic:"+topic); + bb.writeLog("subExpression:"+subExpression); + + consumer.subscribe(topic,subExpression); consumer.setConsumeThreadMin(1); consumer.setConsumeThreadMax(1); consumer.setConsumeMessageBatchMaxSize(1); consumer.setMessageModel(MessageModel.BROADCASTING); consumer.registerMessageListener(new RocketMsgListener()); +// consumer.registerMessageListener(new RocketMsgOrderListener()); /** * Consumer对象在使用之前必须要调用start初始化,初始化一次即可
diff --git a/src/weaver/interfaces/mq/RocketmqUtil.java b/src/weaver/interfaces/mq/RocketmqUtil.java index 9806b790..11dc6b4b 100644 --- a/src/weaver/interfaces/mq/RocketmqUtil.java +++ b/src/weaver/interfaces/mq/RocketmqUtil.java @@ -3,6 +3,7 @@ package weaver.interfaces.mq; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang.StringUtils; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.TimeUtil; @@ -48,12 +49,12 @@ public class RocketmqUtil { errcount += errcount2; }else if("system_roles".equals(tableName)){ JSONArray jsonArray = requestObject.getJSONArray("content"); - int errcount3 =updasteSysRoleData(jsonArray); + int errcount3 = updasteSysRoleData(jsonArray); bb.writeLog("errcount3:"+errcount3); errcount += errcount3; }else if("system_post".equals(tableName)){ JSONArray jsonArray = requestObject.getJSONArray("content"); - int errcount4 =updasteSysPostData(jsonArray); + int errcount4 = updasteSysPostData(jsonArray); bb.writeLog("errcount4:"+errcount4); errcount += errcount4; }else if("system_user_role".equals(tableName)){ @@ -63,7 +64,7 @@ public class RocketmqUtil { errcount += errcount5; }else if("system_user_post".equals(tableName)){ // system_user_post JSONArray jsonArray = requestObject.getJSONArray("content"); - int errcount6 = updateSystemPostRoleData(jsonArray); + int errcount6 = updateSystemUserPostData(jsonArray); bb.writeLog("errcount6:"+errcount6); errcount += errcount6; }else if("staff".equals(tableName)){ @@ -107,6 +108,25 @@ public class RocketmqUtil { // "regionId":"731","pwdSmsTel":"21423523523","loginedNum":"78","staffId":"12002", // "updateStaff":"1"}],"tableName":"system_user","primaryKey":"sysUserId"}],"key":"svcCont"} + String locationid = "2" ; + String seclevel = "20" ; + String createrid = "1" ; + String lastmodid = "1" ; + String creator = "1"; + String systemlanguage = "8" ; + String currentDate = TimeUtil.getCurrentDateString();//当前日期 + String currentDateTime = TimeUtil.getCurrentTimeString(); //当前时间 + + String jobTitleId = "" ; + String defaultJobCode = bb.getPropValue("PORTAL_INFO","defaultJobCode"); + if(StringUtils.isNotEmpty(defaultJobCode)){ + String sql = " select id from hrmjobtitles where jobtitlecode = ?" ; + rs.executeQuery(sql,new Object[]{defaultJobCode}); + if(rs.next()){ + jobTitleId = Util.null2String(rs.getString("id")); + } + } + int errcount = 0; for(int i=0;i