#EC_HJ100# 流程超时流转提交流程对接门户系统
parent
3a13c5840b
commit
8c9eec15db
@ -0,0 +1,340 @@
|
||||
package weaver.interfaces.dito.overtime;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.constant.Constants;
|
||||
import com.customization.dito.sendtodo.HttpRequestUtil;
|
||||
import com.customization.dito.sendtodo.SendPortalErrorUtil;
|
||||
import com.time.util.DateUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.Util;
|
||||
import weaver.interfaces.dito.comInfo.PropBean;
|
||||
import java.net.URLEncoder;
|
||||
|
||||
/***
|
||||
*
|
||||
*/
|
||||
public class SendPortalOverTimeSubmitUtil {
|
||||
|
||||
public void sendOverTimeSubmit(String requestid,String userids){
|
||||
BaseBean bb = new BaseBean();
|
||||
bb.writeLog("SendPortalOverTimeSubmitUtil");
|
||||
sendOverTimeSubmitByTodo(requestid,userids);
|
||||
sendOverTimeSubmitByToRead(requestid,userids);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param requestid
|
||||
* @param userids
|
||||
*/
|
||||
public void sendOverTimeSubmitByTodo(String requestid,String userids){
|
||||
|
||||
String portal_todourl = Constants.portal_todourl;
|
||||
String bpm_app_workflowurl = Constants.bpm_app_workflowurl;
|
||||
String username = Constants.username;
|
||||
String passwd = Constants.passwd;
|
||||
String bpm_workflowurl = Constants.bpm_workflowurl;
|
||||
String center = Constants.center;
|
||||
String bpm_app_requesturl = Constants.bpm_app_requesturl;
|
||||
|
||||
BaseBean bb = new BaseBean();
|
||||
bb.writeLog("sendOverTimeSubmitBytoDo");
|
||||
RecordSet rs = new RecordSet();
|
||||
|
||||
String zhjkbs = "weaver.interfaces.dito.overtime.SendPortalOverTimeSubmitUtil.sendOverTimeSubmitByTodo" ;
|
||||
|
||||
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
|
||||
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
|
||||
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
|
||||
JSONObject requestObject = new JSONObject();
|
||||
bb.writeLog("SendPortalOverTimeSubmitUtil--sendOverTimeSubmitBytoDo");
|
||||
String terminal = "1" ;
|
||||
String taskType = "0";
|
||||
String actionType = "2" ;
|
||||
String objectAction = "0";
|
||||
String objectType = "0";
|
||||
|
||||
try {
|
||||
|
||||
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
|
||||
String scopeid = "-1";
|
||||
String scope = "HrmCustomFieldByInfoType" ;
|
||||
|
||||
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
|
||||
String urlPc = "[newtab]"+ bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
|
||||
String replace = bpm_app_workflowurl.replace("/bpm", "");
|
||||
String urlDing = replace+bpm_app_requesturl+requestid;
|
||||
String urlApp = replace+bpm_app_requesturl+requestid;
|
||||
|
||||
if(org.apache.commons.lang.StringUtils.isNotEmpty(mobileJumpUrl)){
|
||||
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
|
||||
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
|
||||
}
|
||||
bb.writeLog("monitorArchived-urlDing", urlDing);
|
||||
|
||||
int count = 0 ;
|
||||
String countSql=" select t2.userid \n" +
|
||||
" from workflow_requestbase t1\n" +
|
||||
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
|
||||
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
|
||||
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','7','11')) \n" +
|
||||
" and t2.islasttimes = 1\n" +
|
||||
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
|
||||
" and t2.requestid = "+requestid ;
|
||||
|
||||
bb.writeLog("sendOverTimeSubmitBytoDo--countSql:"+countSql);
|
||||
rs.executeQuery(countSql);
|
||||
while (rs.next()){
|
||||
count++;
|
||||
}
|
||||
bb.writeLog("sendOverTimeSubmitBytoDo--count:"+count);
|
||||
if(count >0){
|
||||
|
||||
String requestname = "" ;
|
||||
String workflowname = "" ;
|
||||
String nodeId = "" ;
|
||||
String nodeName = "" ;
|
||||
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
|
||||
" from workflow_requestbase t1\n" +
|
||||
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
|
||||
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
|
||||
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
|
||||
" and t1.requestid = "+requestid ;
|
||||
|
||||
bb.writeLog("sendOverTimeSubmitBytoDo--sql2:"+sql);
|
||||
|
||||
rs.executeQuery(sql);
|
||||
if (rs.next()){
|
||||
requestname = Util.null2String(rs.getString("requestname")) ;
|
||||
workflowname = Util.null2String(rs.getString("workflowname")) ;
|
||||
nodeId = Util.null2String(rs.getString("nodeid")) ;
|
||||
nodeName = Util.null2String(rs.getString("nodeName")) ;
|
||||
}
|
||||
|
||||
requestObject.put("center",center);
|
||||
requestObject.put("title",requestname);
|
||||
requestObject.put("taskCode","weaver"+requestid);
|
||||
requestObject.put("nodeId",nodeId);
|
||||
requestObject.put("taskType",taskType);
|
||||
requestObject.put("actionType",actionType);
|
||||
requestObject.put("createDate",processTime);
|
||||
requestObject.put("messageTitle",getShortMessageTitle(requestname));
|
||||
requestObject.put("messageContent",requestname);
|
||||
requestObject.put("terminal",terminal);
|
||||
requestObject.put("urlPc",urlPc);
|
||||
requestObject.put("urlApp",urlApp);
|
||||
requestObject.put("urlDing",urlDing);
|
||||
requestObject.put("nodeName",nodeName);
|
||||
requestObject.put("ticketType",workflowname);
|
||||
|
||||
JSONArray taskObjectList = new JSONArray();
|
||||
|
||||
sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
|
||||
" from workflow_requestbase t1\n" +
|
||||
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
|
||||
" left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
|
||||
" left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
|
||||
" left join workflow_nodebase d1 on d1.id = t2.nodeid "+
|
||||
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
|
||||
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','7','11')) \n" +
|
||||
" and t2.islasttimes = 1 \n" +
|
||||
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
|
||||
" and t2.requestid = "+requestid ;
|
||||
|
||||
rs.executeQuery(sql);
|
||||
while (rs.next()) {
|
||||
//归档节点抄送
|
||||
String creator = rs.getString("loginid");
|
||||
String staffid = rs.getString("staffid");
|
||||
bb.writeLog("sendOverTimeSubmitBytoDo:"+requestid+" creator:"+creator);
|
||||
if ("sysadmin".equals(creator)) {
|
||||
creator = "Admin";
|
||||
}
|
||||
|
||||
JSONObject taskObject = new JSONObject();
|
||||
taskObject.put("objectAction",objectAction);
|
||||
taskObject.put("objectType", objectType);
|
||||
taskObject.put("objectCode", creator);
|
||||
taskObject.put("objectId", staffid);
|
||||
taskObject.put("operatorCode", creator);
|
||||
taskObjectList.add(taskObject);
|
||||
}
|
||||
|
||||
requestObject.put("taskObjectList",taskObjectList);
|
||||
String auth = username + ":" + passwd;
|
||||
bb.writeLog("sendOverTimeSubmitBytoDo---requestObject:"+requestObject.toJSONString());
|
||||
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
|
||||
|
||||
if (!"".equals(msgdata)) {
|
||||
JSONObject msgObject = JSONObject.parseObject(msgdata);
|
||||
if (msgObject.containsKey("resultCode")) {
|
||||
String resultCode = msgObject.getString("resultCode");
|
||||
if ("0".equals(resultCode)) {
|
||||
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userids,requestObject.toJSONString(),resultCode,"",zhjkbs);
|
||||
}else{
|
||||
String resultmsg = msgObject.getString("resultMsg");
|
||||
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userids,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param requestid
|
||||
* @param userids
|
||||
*/
|
||||
public void sendOverTimeSubmitByToRead(String requestid,String userids){
|
||||
|
||||
BaseBean bb = new BaseBean();
|
||||
bb.writeLog("sendOverTimeSubmitByToRead");
|
||||
RecordSet rs = new RecordSet();
|
||||
String portal_todourl = Constants.portal_todourl;
|
||||
String bpm_app_workflowurl = Constants.bpm_app_workflowurl;
|
||||
String username = Constants.username;
|
||||
String passwd = Constants.passwd;
|
||||
String bpm_workflowurl = Constants.bpm_workflowurl;
|
||||
String center = Constants.center;
|
||||
String bpm_app_requesturl = Constants.bpm_app_requesturl;
|
||||
|
||||
String zhjkbs = "weaver.interfaces.dito.overtime.SendPortalOverTimeSubmitUtil.sendOverTimeSubmitBytoRead" ;
|
||||
|
||||
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
|
||||
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
|
||||
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
|
||||
JSONObject requestObject = new JSONObject();
|
||||
bb.writeLog("SendPortalOverTimeSubmitUtil--sendOverTimeSubmitBytoRead");
|
||||
String terminal = "1" ;
|
||||
String actionType = "0" ;
|
||||
String taskType = "1";
|
||||
String objectAction = "0" ;
|
||||
String objectType = "0";
|
||||
String emailArray = "";
|
||||
try {
|
||||
|
||||
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
|
||||
String scopeid = "-1";
|
||||
String scope = "HrmCustomFieldByInfoType" ;
|
||||
|
||||
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
|
||||
String urlPc = "[newtab]"+ bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
|
||||
String replace = bpm_app_workflowurl.replace("/bpm", "");
|
||||
String urlDing = replace+bpm_app_requesturl+requestid;
|
||||
String urlApp = replace+bpm_app_requesturl+requestid;
|
||||
|
||||
if(org.apache.commons.lang.StringUtils.isNotEmpty(mobileJumpUrl)){
|
||||
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
|
||||
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
|
||||
}
|
||||
bb.writeLog("sendOverTimeSubmitBytoRead-urlDing", urlDing);
|
||||
|
||||
String requestname = "" ;
|
||||
String workflowname = "" ;
|
||||
String nodeId = "" ;
|
||||
String nodeName = "" ;
|
||||
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
|
||||
" from workflow_requestbase t1\n" +
|
||||
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
|
||||
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
|
||||
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
|
||||
" and t1.requestid = "+requestid ;
|
||||
|
||||
bb.writeLog("sendOverTimeSubmitBytoRead--sql2:"+sql);
|
||||
|
||||
rs.executeQuery(sql);
|
||||
if (rs.next()){
|
||||
requestname = Util.null2String(rs.getString("requestname")) ;
|
||||
workflowname = Util.null2String(rs.getString("workflowname")) ;
|
||||
nodeId = Util.null2String(rs.getString("nodeid")) ;
|
||||
nodeName = Util.null2String(rs.getString("nodeName")) ;
|
||||
}
|
||||
requestObject.put("center",center);
|
||||
requestObject.put("title",requestname);
|
||||
requestObject.put("taskCode","weaver"+requestid);
|
||||
requestObject.put("nodeId",nodeId);
|
||||
requestObject.put("taskType",taskType);
|
||||
requestObject.put("actionType",actionType);
|
||||
requestObject.put("createDate",processTime);
|
||||
requestObject.put("messageTitle",getShortMessageTitle(requestname));
|
||||
requestObject.put("messageContent",requestname);
|
||||
requestObject.put("terminal",terminal);
|
||||
requestObject.put("urlPc",urlPc);
|
||||
requestObject.put("urlApp",urlApp);
|
||||
requestObject.put("urlDing",urlDing);
|
||||
requestObject.put("nodeName",nodeName);
|
||||
requestObject.put("ticketType",workflowname);
|
||||
|
||||
JSONArray taskObjectList = new JSONArray();
|
||||
sql = " select t2.userid,h1.loginid,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
|
||||
" from workflow_requestbase t1\n" +
|
||||
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
|
||||
" left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
|
||||
" left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
|
||||
" left join workflow_nodebase d1 on d1.id = t2.nodeid "+
|
||||
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
|
||||
" and t2.isremark in ('8','9')\n" +
|
||||
" and t2.islasttimes = 1\n" +
|
||||
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
|
||||
" and t2.requestid = "+requestid +
|
||||
" ";
|
||||
rs.executeQuery(sql);
|
||||
while (rs.next()) {
|
||||
//归档节点抄送
|
||||
String creator = rs.getString("loginid");
|
||||
String staffid = rs.getString("staffid");
|
||||
bb.writeLog("monitorArchived:"+requestid+" creator:"+creator);
|
||||
if ("sysadmin".equals(creator)) {
|
||||
creator = "Admin";
|
||||
}
|
||||
|
||||
JSONObject taskObject = new JSONObject();
|
||||
taskObject.put("objectAction", objectAction);
|
||||
taskObject.put("objectType", objectType);
|
||||
taskObject.put("objectCode", creator);
|
||||
taskObject.put("objectId", staffid);
|
||||
taskObject.put("operatorCode", creator);
|
||||
taskObjectList.add(taskObject);
|
||||
}
|
||||
|
||||
requestObject.put("taskObjectList",taskObjectList);
|
||||
String auth = username + ":" + passwd;
|
||||
bb.writeLog("sendOverTimeSubmitBytoRead---requestObject:"+requestObject.toJSONString());
|
||||
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
|
||||
if (!"".equals(msgdata)) {
|
||||
JSONObject msgObject = JSONObject.parseObject(msgdata);
|
||||
if (msgObject.containsKey("resultCode")) {
|
||||
String resultCode = msgObject.getString("resultCode");
|
||||
if ("0".equals(resultCode)) {
|
||||
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userids,requestObject.toJSONString(),resultCode,"",zhjkbs);
|
||||
}else{
|
||||
String resultmsg = msgObject.getString("resultMsg");
|
||||
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userids,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/***
|
||||
*
|
||||
* @param messageTitle
|
||||
* @return
|
||||
*/
|
||||
private String getShortMessageTitle(String messageTitle) {
|
||||
if (messageTitle.length() > 20) {
|
||||
messageTitle = messageTitle.substring(0, 17) + "...";
|
||||
}
|
||||
return messageTitle;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue