#EC-HJ-10# 邮件发送及待办代码优化

feature-LeeD-20221025
shilei 3 years ago
parent 3603d8a03b
commit 3c7f2fe0c3

@ -1,3 +1,5 @@
###以下是和门户集成相关的
##门户地址
portal_host = http://172.16.25.133
@ -7,8 +9,10 @@ portal_user_auth = http://172.16.25.133/portal-web/user/current
##门户首页
portal_homepage = http://172.16.25.133/portal-web/#
##RocketMq的consumerGroup
consumerGroup = cbec-consumer-group_nj_133
###以下是和人员同步mq相关的
##RocketMq的consumerGroup cbec-consumer-group_nj_133
consumerGroup = coc-consumer-group_portal_133
##RocketMq的namesrvAddr
namesrvAddr = 172.16.84.183:9001;172.16.84.187:9001
@ -22,6 +26,7 @@ topic = dataSync_topic_nj
##RocketMq的subExpression
subExpression = BPM
###以下是和门户待办相关的
##门户待办接口
portal_todourl = http://172.16.25.133/portal-web/centerTodo/sync
@ -37,11 +42,24 @@ bpm_workflowurl = http://172.16.25.133/bpm
## 门户待办类型
center = MCCM
##bpm系统的地址集群以;拼接
bpm_host_array = 10.10.192.187
###以下是签章相关的
esiginsUrl = http://172.16.25.133/portal-web/v1/esign
##/whalecloud/cos/ecology
ecology_app_root = /app/weaver/ecology
ecology_app_root = /app/weaver/ecology
###以下是和邮件相关的
emailUrl = http://10.26.4.136:80/api/rest
emailMethod = sendNotification
eventCode =
notificationType = EMAIL
channel = OA
version = 1.0

@ -34,9 +34,13 @@ public class HttpReqUtils extends BaseBean{
.build();
try {
Response response = client.newCall(request).execute();
bb.writeLog("response.code():"+response.code());
bb.writeLog("response.body():"+response.body().string());
msgData = response.body().string();
if(response!=null && response.code() == 200){
msgData = response.body().string();
}
} catch (IOException e) {
e.printStackTrace();
}

@ -1,7 +1,5 @@
package com.customization.sendtodo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command;
@ -20,6 +18,7 @@ import java.util.Map;
*/
@CommandDynamicProxy(target = RequestSubmitCmd.class, desc="流程提交后给门户发送代办消息")
public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>> {
@Override
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
//获取到被代理对象
@ -47,657 +46,18 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
RequestOperationResultBean resultBean = (RequestOperationResultBean) result.get("data");
String executeResult = resultBean.getType().name();
String new_requestid = Util.null2String(resultBean.getResultInfo().get("requestid"));
// String newRequestid = (String) result.get("newRequestid");
bb.writeLog("new_requestid:"+new_requestid);
// bb.writeLog("newRequestid:"+newRequestid);
if("SUCCESS".equals(executeResult)){
String new_requestid = Util.null2String(resultBean.getResultInfo().get("requestid"));
bb.writeLog("new_requestid:"+new_requestid);
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");
SendPortalTodoRunnable sendPortalTodoRunnable = new SendPortalTodoRunnable(src,new_requestid,requestid,nodeid,user);
new Thread(sendPortalTodoRunnable).start();
if(Util.getIntValue(requestid) == -1 && "save".equals(src)){
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);
}else if(Util.getIntValue(requestid)> 0 && "submit".equals(src)){
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);
}
}
return result;
}
/***
*
* @param requestId
* @param user
*/
public void sendTodoDataByCreater(String requestId,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){
HttpReqUtils httpReqUtils = new HttpReqUtils();
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
String actionType = "0" ;
String terminal = "1" ;
String ticketType = center ;
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\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 from hrmresource where status = 1 union all select id, lastname,loginid 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 taskType = "0";
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 objectAction = "0" ;
String objectType = "0";
String objectCode = creator ;
String objectId = "" ;
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);
}
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 = httpReqUtils.doPostByAuth2(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
System.out.println(msgObject);
}
} 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){
HttpReqUtils httpReqUtils = new HttpReqUtils();
JSONObject requestObject = new JSONObject();
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByCreateNode");
RecordSet rs = new RecordSet();
String ticketType = center ;
String terminal = "1" ;
try {
String currentnodetype = "" ;
String sql = " select currentnodetype from workflow_requestbase where requestid="+requestid;
rs.executeQuery(sql);
bb.writeLog("sendTodoDataByNode--sql:"+sql);
if (rs.next()){
currentnodetype = Util.null2String(rs.getString("CURRENTNODETYPE"));
}
bb.writeLog("sendTodoDataByNode--currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
String actionType = "3" ;
}else{
String actionType = "0" ;
JSONArray taskObjectList = new JSONArray();
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 taskType = "0";
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("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);
}
requestObject.put("taskObjectList",taskObjectList);
// String username = "admin";
// String passwd = "Uportal_123";
// String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ;
String auth = username + ":" + passwd;
bb.writeLog("requestObject:"+requestObject.toJSONString());
String msgdata = httpReqUtils.doPostByAuth2(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
System.out.println(msgdata);
}
}
} 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){
HttpReqUtils httpReqUtils = new HttpReqUtils();
JSONObject requestObject = new JSONObject();
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByNode");
RecordSet rs = new RecordSet();
String ticketType = center ;
String terminal = "1" ;
try {
String currentnodetype = "" ;
String sql = " select currentnodetype from workflow_requestbase where requestid="+requestid;
rs.executeQuery(sql);
bb.writeLog("sendTodoDataByNode--sql:"+sql);
if (rs.next()){
currentnodetype = Util.null2String(rs.getString("CURRENTNODETYPE"));
}
bb.writeLog("sendTodoDataByNode--currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
String actionType = "3" ;
}else{
String actionType = "" ;
int count = 0 ;
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 taskType = "0";
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 taskType = "0";
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.REQUESTID = "+requestid+
// " and t2.nodeid = " + noideid ;
// bb.writeLog("sendTodoDataByNode--sql:"+sql);
// rs.executeQuery(sql);
// while (rs.next()){
// 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);
// }
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("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);
}
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 = httpReqUtils.doPostByAuth2(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
System.out.println(msgObject);
}
}
} 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){
HttpReqUtils httpReqUtils = new HttpReqUtils();
JSONObject requestObject = new JSONObject();
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByReject");
RecordSet rs = new RecordSet();
String ticketType = center ;
String terminal = "1" ;
try {
String currentnodetype = "" ;
String sql = " select currentnodetype from workflow_requestbase where requestid="+requestid;
rs.executeQuery(sql);
bb.writeLog("sendTodoDataByReject--sql:"+sql);
if (rs.next()){
currentnodetype = Util.null2String(rs.getString("CURRENTNODETYPE"));
}
bb.writeLog("sendTodoDataByReject--currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
String actionType = "3" ;
}else{
String actionType = "2" ;
JSONArray taskObjectList = new JSONArray();
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 taskType = "0";
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 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);
}
requestObject.put("taskObjectList",taskObjectList);
// String username = "admin";
// String passwd = "Uportal_123";
// String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ;
String auth = username + ":" + passwd;
bb.writeLog("requestObject:"+requestObject.toJSONString());
String msgdata = httpReqUtils.doPostByAuth2(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
System.out.println(msgdata);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,720 @@
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;
private String nodeid;
private User user;
public SendPortalTodoRunnable(String src,String new_requestid,String requestid,String nodeid, User user){
this.src = src;
this.new_requestid = new_requestid;
this.requestid = requestid;
this.nodeid = nodeid;
this.user = user;
}
@Override
public void run() {
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");
if(Util.getIntValue(requestid) == -1 && "save".equals(src)){
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);
}else if(Util.getIntValue(requestid)> 0 && "submit".equals(src)){
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){
//HttpReqUtils httpReqUtils = new HttpReqUtils();
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 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 objectAction = "0" ;
String objectType = "0";
String objectCode = creator ;
String objectId = "" ;
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){
//HttpReqUtils httpReqUtils = new HttpReqUtils();
SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil();
SendMailUtil sendMailUtil = new SendMailUtil();
JSONObject requestObject = new JSONObject();
JSONArray emailArray = new JSONArray();
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByCreateNode");
RecordSet rs = new RecordSet();
String ticketType = center ;
String terminal = "1" ;
try {
String currentnodetype = "" ;
String sql = " select currentnodetype from workflow_requestbase where requestid="+requestid;
rs.executeQuery(sql);
bb.writeLog("sendTodoDataByNode--sql:"+sql);
if (rs.next()){
currentnodetype = Util.null2String(rs.getString("CURRENTNODETYPE"));
}
bb.writeLog("sendTodoDataByNode--currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
String actionType = "3" ;
}else{
String actionType = "0" ;
JSONArray taskObjectList = new JSONArray();
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,h1.email\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,email from hrmresource where status = 1 union all select id, lastname,loginid,'' as email 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 taskType = "0";
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 email = Util.null2String(rs.getString("email")) ;
emailArray.add(email);
}
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("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")) ;
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){
HttpReqUtils httpReqUtils = new HttpReqUtils();
JSONObject requestObject = new JSONObject();
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByNode");
RecordSet rs = new RecordSet();
String ticketType = center ;
String terminal = "1" ;
try {
String currentnodetype = "" ;
String sql = " select currentnodetype from workflow_requestbase where requestid="+requestid;
rs.executeQuery(sql);
bb.writeLog("sendTodoDataByNode--sql:"+sql);
if (rs.next()){
currentnodetype = Util.null2String(rs.getString("CURRENTNODETYPE"));
}
bb.writeLog("sendTodoDataByNode--currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
String actionType = "3" ;
}else{
String actionType = "" ;
int count = 0 ;
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 taskType = "0";
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 taskType = "0";
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.REQUESTID = "+requestid+
// " and t2.nodeid = " + noideid ;
// bb.writeLog("sendTodoDataByNode--sql:"+sql);
// rs.executeQuery(sql);
// while (rs.next()){
// 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);
// }
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("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);
}
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 = httpReqUtils.doPostByAuth2(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
System.out.println(msgObject);
}
}
} 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){
HttpReqUtils httpReqUtils = new HttpReqUtils();
JSONObject requestObject = new JSONObject();
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByReject");
RecordSet rs = new RecordSet();
String ticketType = center ;
String terminal = "1" ;
try {
String currentnodetype = "" ;
String sql = " select currentnodetype from workflow_requestbase where requestid="+requestid;
rs.executeQuery(sql);
bb.writeLog("sendTodoDataByReject--sql:"+sql);
if (rs.next()){
currentnodetype = Util.null2String(rs.getString("CURRENTNODETYPE"));
}
bb.writeLog("sendTodoDataByReject--currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
String actionType = "3" ;
}else{
String actionType = "2" ;
JSONArray taskObjectList = new JSONArray();
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 taskType = "0";
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 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);
}
requestObject.put("taskObjectList",taskObjectList);
// String username = "admin";
// String passwd = "Uportal_123";
// String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ;
String auth = username + ":" + passwd;
bb.writeLog("requestObject:"+requestObject.toJSONString());
String msgdata = httpReqUtils.doPostByAuth2(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
System.out.println(msgdata);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,56 @@
package com.customization.sendtodo;
import com.sun.jersey.core.util.Base64;
import okhttp3.*;
import weaver.general.BaseBean;
import java.io.IOException;
public class SendPortalTodoUtil {
/***
*
* @param portal_todourl
* @param dataJson
* @param auth
* @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;
}
public void doCreateSendPortalTodoErrorInfo(){
}
}

@ -0,0 +1,206 @@
package weaver.interfaces.iwhalecloud.util;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;
public class RSAUtils {
/**
* RSA
*/
private static final String KEY_ALGORITHM = "RSA";
/**
* MD5withRSA
*/
private static final String SIGNATURE_ALGORITHM_MD5 = "MD5withRSA";
/**
* 16
*/
private static final String ENCODING_HEX = "HEX";
/**
* base64
*/
private static final String ENCODING_BASE64 = "BASE64";
private static final String AND = "&";
/**
*
*
* @param data
* @param publicKeyByte
* @param sign
* @return
* @throws Exception
*/
private static boolean verify(byte[] data, byte[] publicKeyByte, byte[] sign, String signatureAlgorithm)
throws Exception {
if (data == null || publicKeyByte == null || sign == null) {
return false;
}
// 生成公钥
X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(publicKeyByte);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
PublicKey publicKey = keyFactory.generatePublic(x509KeySpec);
Signature signature = Signature.getInstance(signatureAlgorithm);
signature.initVerify(publicKey);
signature.update(data);
return signature.verify(sign);
}
/**
* - V9: MD5withRSA
*
* @param data
* @param publicKey
* @param sign
* @return
* @throws Exception
*/
private static boolean verify(byte[] data, String publicKey, String sign) throws Exception {
if (StringUtils.isBlank(publicKey) || StringUtils.isBlank(sign)) {
return false;
}
return verify(data, Base64.decodeBase64(publicKey), Base64.decodeBase64(sign), SIGNATURE_ALGORITHM_MD5);
}
/**
* 16
*
* @param bytes
* @return
*/
private static String encodeByte2HexStr(byte[] bytes) {
if (bytes == null) {
return null;
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(bytes[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
sb.append(hex.toUpperCase());
}
return sb.toString();
}
private static String sign(byte[] data, byte[] privateKeyByte, String encodingType, String signatureAlgorithm)
throws Exception {
if (data == null || privateKeyByte == null) {
return StringUtils.EMPTY;
}
// 生成私钥
PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(privateKeyByte);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
PrivateKey privateKey = keyFactory.generatePrivate(pkcs8KeySpec);
Signature signature = Signature.getInstance(signatureAlgorithm);
signature.initSign(privateKey);
signature.update(data);
if (ENCODING_HEX.equals(encodingType)) {
return encodeByte2HexStr(signature.sign());
}
return Base64.encodeBase64String(signature.sign());
}
private static String sign(byte[] data, String privateKey) throws Exception {
if (StringUtils.isBlank(privateKey)) {
return StringUtils.EMPTY;
}
return sign(data, Base64.decodeBase64(privateKey), ENCODING_BASE64, SIGNATURE_ALGORITHM_MD5);
}
private static String genSignDate(String appId, String appCode, String appSecret, String timestamp) {
// appId和appCode两个只需要传递一个两个都传时以appId为准
String appPk = "";
if (StringUtils.isNotBlank(appId)) {
appPk = appId;
}
else if (StringUtils.isNotBlank(appCode)) {
appPk = appCode;
}
String responseType = "token";
System.out.println("timestamp == " + timestamp);
return appPk + AND +
appSecret + AND +
responseType + AND +
timestamp;
}
/**
*
*
* @param appId
* @param appCode
* @param appSecret
* @param timestamp
* @param privateKey
* @return
* @throws Exception
*/
public static String generateSign(String appId, String appCode, String appSecret, String timestamp, String privateKey) throws Exception {
String signData = genSignDate(appId, appCode, appSecret, timestamp);
return sign(signData.getBytes("utf-8"), privateKey);
}
/**
*
*
* @param appId
* @param appCode
* @param appSecret
* @param timestamp
* @param publicKey
* @param sign
* @return
* @throws Exception
*/
public static boolean verifySign(String appId, String appCode, String appSecret, String timestamp, String publicKey, String sign) throws Exception {
String signData = genSignDate(appId, appCode, appSecret, timestamp);
return verify(signData.getBytes("utf-8"), publicKey, sign);
}
public static void main(String[] args) throws Exception {
String appId = "80938";
String appCode = "";
String appSecret = "abb6dc5515eeca96";
String timestamp = System.currentTimeMillis() + "";
// 生成签名
String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCt49VVhOmTZVpWPK/bB/ZvpoxrpXt3c9h8DJtHq9vWLGPVMS0a2l+v4U+g8zFpq6Rb6G6nnJ+pYXmojygQhqKG6izWxEojdAF2znt6URsikGe1wRxUpUewRbZVse7Rs0jvJmGZeVZ08gC1iKogyHtHeRinnHJNxC4v/5yhkOBpR6oe4t2IutKNFhSmHdJP5bEkei5gWAZ4xi15pvcWBcUSVEQliW7qRTX9yQUdCq1KzCLEGYNfm27SzKvFpRUAXpgjfFftmB3u7pZ9qhAn/25b0h9sE90Xjwg/UNmLqxUerNNDbIrqWy0x6g/+2Q/c4OXKLk5FlkkEURoBINNDbYgdAgMBAAECggEAAsfZ6XwuoATG5QojZcVC05Y+OJp01vwrQhCRixvccBhVoFsg9YT4cr+PnmtFJwNvpWiaHGQMyZCdeWyQn3MHtlCYVvbcmKSKQXQb1WDmpi7Y+bcU1OWvt8nlmIk34HKVf/2FIgcmssgL6ts8nTmXfxUYp9WAnm28r1fPEWZXsFdGNilFxg6Vymct+5hfnXUA5OMm1RgSvYR/12F4aqILz7kjMBjkF4IJAJpRqR4WlU3vhJ3+FGLnOqnAKRE+rkn10LaKpfOrWY6chm6C2ddNVzGyYaDAqH+TK+9C8qLYZLjbyD8a5LlCU4xdHYbG4VoVpHz7Pop4XQWzOkP7zagvoQKBgQD1MT9K4Kt/Ms3pw/zbv0a3Wvt45OfszMHiVBYXE7Fhp11zqK6wyTUU8ePLO3XxS5GbQwBRlfYhI2aF6nWxq2iphqemD5AqC03m0tJl4g2/q/+Mr0k7ClRJHV2cs80ij9aWdHcNlCW5G37ZXfjiQ9qkiIIr1RLngO59HAEP1ePZzwKBgQC1jgJeDpFRKDZ8SCYKowjnvMgPULZ97LDofS828hgwLSzSI+tOpHOrJnFgIC08JTVxYnB5gw3ybqvPLt9Tz+soledqayTynMwlpDz4WuoQw5mEPvURIqsxkrMFqYFcMLrBbIsyJFboKkfgLpTXlOFe6wv0oe0s37Sgz9IRMe/2UwKBgGQCGUnGR80TANAHg5xx8TsaXhXacAqzHaXeHEB/ZMtrA4AIXnB3MTKA0yPy9dFcvGAyvO+KFiFAGjInBqhYPNFgvgLKuEed4sFyXiT2RhtW4V4VpO3y8Zv84VDoOZSOTL2DdYfRVG2jHGM2pCxN9uFDWKzeNN6+RQg8ouY9nLkbAoGACme1IwbatTgEx2KrK3jkjcN4A8iwbM8f5HMoPZHqaPht1S1R0xQBvRFa9hNiBExtn63wnEYyim5lUl5xVjBYXd8ZgDPbzjvGR3H+PI2ZVJShO78P9Id0IEc0E2L/kvUH/wXlhF4ozO1/aQ3CYgiaUgJOkRqmqSe5Bm5ir7GY+xkCgYBkfmFhBI9m8AxljI3oJAGv43EGw2s6wZkrQXFBStYBSxTkkS9JHMbkNrKgKvsuzPLUCD0hmdTPREh/miO/0VNXZaa05L7xhgvakezI4f2BSY6tCMXHiBmnRXE8JL4+rEvWAKUaMCTynoyGRetl+JmooLZ5Fez1250hw5vWdSUudA==";
String sign = generateSign(appId, appCode, appSecret, timestamp, privateKey);
System.out.println("sign == " + sign);
// 验证签名
String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArePVVYTpk2VaVjyv2wf2b6aMa6V7d3PYfAybR6vb1ixj1TEtGtpfr+FPoPMxaaukW+hup5yfqWF5qI8oEIaihuos1sRKI3QBds57elEbIpBntcEcVKVHsEW2VbHu0bNI7yZhmXlWdPIAtYiqIMh7R3kYp5xyTcQuL/+coZDgaUeqHuLdiLrSjRYUph3ST+WxJHouYFgGeMYteab3FgXFElREJYlu6kU1/ckFHQqtSswixBmDX5tu0syrxaUVAF6YI3xX7Zgd7u6WfaoQJ/9uW9IfbBPdF48IP1DZi6sVHqzTQ2yK6lstMeoP/tkP3ODlyi5ORZZJBFEaASDTQ22IHQIDAQAB";
boolean verify = verifySign(appId, appCode, appSecret, timestamp, publicKey, sign);
System.out.println("verify == " + verify);
}
}

@ -27,6 +27,10 @@ public class ESiginsCronJob extends BaseCronJob {
updateHrmSiginData();
}
/***
*
*/
public void updateHrmSiginData(){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
@ -212,6 +216,17 @@ public class ESiginsCronJob extends BaseCronJob {
// }
// }
/***
*
* @param sysUserCode
* @param imagetype
* @param image_File_Zip_Path
* @param filesize
* @param image_File_Path
* @param subcompanyid1
* @param userid
*/
public void updateSignature(String sysUserCode,String imagetype,String image_File_Zip_Path,long filesize,String image_File_Path,String subcompanyid1,String userid){
String imageFileType = "application/octet-stream";
@ -252,7 +267,13 @@ public class ESiginsCronJob extends BaseCronJob {
}
/***
*
* @param esignImage
* @param imagefilepath
* @param imagetype
* @return
*/
public String saveImageFile(String esignImage,String imagefilepath,String imagetype)
{
//对字节数组字符串进行Base64解码并生成图片
@ -386,13 +407,16 @@ public class ESiginsCronJob extends BaseCronJob {
Response response = client.newCall(request).execute();
bb.writeLog("response.code():"+response.code());
//bb.writeLog("response.body():"+response.body().string());
msgData = response.body().string();
if(response != null && response.code() == 200){
msgData = response.body().string();
}
} catch (IOException e) {
e.printStackTrace();
bb.writeLog("e2:"+e);
}
bb.writeLog("msgData:"+msgData);
// bb.writeLog("msgData:"+msgData);
return msgData;
}
@ -425,7 +449,7 @@ public class ESiginsCronJob extends BaseCronJob {
System.out.println("response.code():"+response.code());
System.out.println("response.body():"+response.body().string());
String msgData = response.body().string();
System.out.println("msgData:"+msgData);
// System.out.println("msgData:"+msgData);
} catch (IOException e) {
e.printStackTrace();
}

@ -0,0 +1,145 @@
package weaver.interfaces.util;
import com.alibaba.fastjson.JSONObject;
import okhttp3.*;
import org.apache.commons.lang.StringUtils;
import weaver.general.BaseBean;
import weaver.interfaces.iwhalecloud.util.RSAUtils;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SendMailUtil {
public void sendMail(String requestid,String emails,String notificationSubject,String notificationContent){
SimpleDateFormat sdf = new SimpleDateFormat("");
BaseBean bb = new BaseBean();
String emailUrl = bb.getPropValue("PORTAL_INFO","mailUrl");
String emailMethod = bb.getPropValue("PORTAL_INFO","mailMethod");
String eventCode = bb.getPropValue("PORTAL_INFO","eventCode");
String notificationType = bb.getPropValue("PORTAL_INFO","notificationType");
String channel = bb.getPropValue("PORTAL_INFO","channel");
String version = bb.getPropValue("PORTAL_INFO","version");
String triggerTime =sdf.format(new Date());
// {
// "request":{
// "eventCode":"",
// "transId":"",
// "triggerTime":"20221020094013",
// "notificationType":"EMAIL",
// "email":"798989044@qq.com",
// "channel":"OA",
// "notificationSubject":"新待办到达",
// "notificationContent":"新待办到达,清及时处理"
// }
// }
JSONObject requestJson = new JSONObject();
requestJson.put("eventCode",eventCode);
requestJson.put("triggerTime",triggerTime);
requestJson.put("notificationType",notificationType);
requestJson.put("email",emails);
requestJson.put("channel",channel);
requestJson.put("notificationSubject",notificationSubject);
requestJson.put("notificationContent",notificationContent);
try{
String responseData = doGetAccessToken();
String accessToken = "" ;
if(StringUtils.isNotEmpty(responseData)){
JSONObject responseObject = JSONObject.parseObject(responseData);
if(responseObject.containsKey("resCode") && responseObject.containsKey("data")){
String resCode = responseObject.getString("resCode");
if("00000".equals(resCode)){
JSONObject dataObject = responseObject.getJSONObject("data");
if(dataObject.containsKey("accessToken")){
accessToken = dataObject.getString("accessToken");
}
}
}
}
if(StringUtils.isNotEmpty(accessToken)){
JSONObject jsonObject = new JSONObject();
jsonObject.put("access_token",accessToken);
jsonObject.put("method",emailMethod);
jsonObject.put("version",version);
jsonObject.put("content",requestJson);
// "{\r\n \"access_token\": \"\",\r\n \"method\": \"sendNotification\",\r\n \"version\": \"1.0\",\r\n \"content\": {\"eventCode\":\"\", \r\n \"transId\":\"\", \r\n \"triggerTime\":\"20221020094013\",\r\n \"notificationType\":\"EMAIL\",\r\n \"email\":\"798989044@qq.com\", \r\n \"channel\":\"OA\", \r\n \"notificationSubject\":\"新待办到达\",\r\n \"notificationContent\":\"新待办到达,清及时处理\" }\r\n}"
System.out.println(jsonObject.toJSONString());
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType,jsonObject.toJSONString());
Request request = new Request.Builder()
.url(emailUrl)
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
}
}catch (IOException e) {
e.printStackTrace();
}catch (Exception e){
}
}
public String doGetAccessToken(){
String responseData = "" ;
BaseBean bb = new BaseBean();
RSAUtils RSAUtils = new RSAUtils();
String tokenUrl = bb.getPropValue("","") ; //"http://10.26.4.136:80/api/oauth2/apigAuthorize"
String appCode = bb.getPropValue("","") ;
String appSecret = bb.getPropValue("","") ;
String responseType = bb.getPropValue("","") ; //token
String privateKey = bb.getPropValue("","") ;
//String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCt49VVhOmTZVpWPK/bB/ZvpoxrpXt3c9h8DJtHq9vWLGPVMS0a2l+v4U+g8zFpq6Rb6G6nnJ+pYXmojygQhqKG6izWxEojdAF2znt6URsikGe1wRxUpUewRbZVse7Rs0jvJmGZeVZ08gC1iKogyHtHeRinnHJNxC4v/5yhkOBpR6oe4t2IutKNFhSmHdJP5bEkei5gWAZ4xi15pvcWBcUSVEQliW7qRTX9yQUdCq1KzCLEGYNfm27SzKvFpRUAXpgjfFftmB3u7pZ9qhAn/25b0h9sE90Xjwg/UNmLqxUerNNDbIrqWy0x6g/+2Q/c4OXKLk5FlkkEURoBINNDbYgdAgMBAAECggEAAsfZ6XwuoATG5QojZcVC05Y+OJp01vwrQhCRixvccBhVoFsg9YT4cr+PnmtFJwNvpWiaHGQMyZCdeWyQn3MHtlCYVvbcmKSKQXQb1WDmpi7Y+bcU1OWvt8nlmIk34HKVf/2FIgcmssgL6ts8nTmXfxUYp9WAnm28r1fPEWZXsFdGNilFxg6Vymct+5hfnXUA5OMm1RgSvYR/12F4aqILz7kjMBjkF4IJAJpRqR4WlU3vhJ3+FGLnOqnAKRE+rkn10LaKpfOrWY6chm6C2ddNVzGyYaDAqH+TK+9C8qLYZLjbyD8a5LlCU4xdHYbG4VoVpHz7Pop4XQWzOkP7zagvoQKBgQD1MT9K4Kt/Ms3pw/zbv0a3Wvt45OfszMHiVBYXE7Fhp11zqK6wyTUU8ePLO3XxS5GbQwBRlfYhI2aF6nWxq2iphqemD5AqC03m0tJl4g2/q/+Mr0k7ClRJHV2cs80ij9aWdHcNlCW5G37ZXfjiQ9qkiIIr1RLngO59HAEP1ePZzwKBgQC1jgJeDpFRKDZ8SCYKowjnvMgPULZ97LDofS828hgwLSzSI+tOpHOrJnFgIC08JTVxYnB5gw3ybqvPLt9Tz+soledqayTynMwlpDz4WuoQw5mEPvURIqsxkrMFqYFcMLrBbIsyJFboKkfgLpTXlOFe6wv0oe0s37Sgz9IRMe/2UwKBgGQCGUnGR80TANAHg5xx8TsaXhXacAqzHaXeHEB/ZMtrA4AIXnB3MTKA0yPy9dFcvGAyvO+KFiFAGjInBqhYPNFgvgLKuEed4sFyXiT2RhtW4V4VpO3y8Zv84VDoOZSOTL2DdYfRVG2jHGM2pCxN9uFDWKzeNN6+RQg8ouY9nLkbAoGACme1IwbatTgEx2KrK3jkjcN4A8iwbM8f5HMoPZHqaPht1S1R0xQBvRFa9hNiBExtn63wnEYyim5lUl5xVjBYXd8ZgDPbzjvGR3H+PI2ZVJShO78P9Id0IEc0E2L/kvUH/wXlhF4ozO1/aQ3CYgiaUgJOkRqmqSe5Bm5ir7GY+xkCgYBkfmFhBI9m8AxljI3oJAGv43EGw2s6wZkrQXFBStYBSxTkkS9JHMbkNrKgKvsuzPLUCD0hmdTPREh/miO/0VNXZaa05L7xhgvakezI4f2BSY6tCMXHiBmnRXE8JL4+rEvWAKUaMCTynoyGRetl+JmooLZ5Fez1250hw5vWdSUudA==";
//"{\"appCode\":\""+appCode+"\",\r\n\t\"appSecret\":\"9f5a519622a8790b\",\r\n\t\"responseType\":\"token\",\r\n\t\"timestamp\":\"1592212221795\",\r\n\t\"sign\":\"LE4MPesIy8BCxOa958cQxX0cW1ObvOfCn2dDUK6AzCukcvyS6EvFMLzSBFiCgcMT1w9cYAbSIOWL2SENvpC2qxXrgtWJd6B3J1dUmL5ZBtOEGZ6ymRz7IAQraA1TG82Y0ZTgVFhOGS/TtbTjdEhurwcclWdbSPEy6uZesoQpyF7MAW+hb5Y5ioqe1ky7RE15W/gwJDONgLifUoZnXhowjsJHBJ/xCwdfQi48/wu0CX+G46C+fSYHKncGbeeg7hFyaltNWsco0ScWLB/JjKA1qZv+pPFGaWGidfoTErq7Ux8fIYH3cRjRoSNknOcawi+zjy8GMBDjxIk9lX7+Oz1wYA==\"\r\n}"
String timestamp = System.currentTimeMillis() + "";
try {
// 生成签名
String sign = RSAUtils.generateSign("", appCode, appSecret, timestamp, privateKey);
System.out.println("sign == " + sign);
JSONObject jsonObject = new JSONObject();
jsonObject.put("appCode",appCode);
jsonObject.put("appSecret",appSecret);
jsonObject.put("responseType",responseType);
jsonObject.put("timestamp",timestamp);
jsonObject.put("sign",timestamp);
System.out.println(jsonObject.toJSONString());
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, jsonObject.toJSONString());
Request request = new Request.Builder()
.url(tokenUrl)
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
bb.writeLog("response.code():"+response.code());
bb.writeLog("response.body():"+response.body().string());
responseData = response.body().string();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return responseData;
}
}
Loading…
Cancel
Save