#EC_HJ158# 最新的代码

main
shilei 3 months ago
parent ce3ab7e749
commit 816f0c3fa2

@ -0,0 +1,171 @@
package weaver.interfaces.dito.action;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
import java.net.URLEncoder;
import java.util.Map;
/**
* @author
* @date 2024/10/28
*
*/
public class RequestReamrkForceRecycle2PortalAction implements Action {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
@Override
public String execute(RequestInfo requestInfo) {
BaseBean bb = new BaseBean();
bb.writeLog("----RequestForceRecycle2PortalAction------");
String requestid = requestInfo.getRequestid();
try{
String resultCode = sendRemarkDoneDataByForceRecycle(requestid);
if(!"0".equals(resultCode)){
requestInfo.getRequestManager().setMessageid("1000");
requestInfo.getRequestManager().setMessagecontent("调用门户接口异常");
return Action.FAILURE_AND_CONTINUE;
}
}catch (Exception e){
requestInfo.getRequestManager().setMessageid("1000");
requestInfo.getRequestManager().setMessagecontent("流程提交接口异常");
return Action.FAILURE_AND_CONTINUE;
}
return Action.SUCCESS;
}
/***
*
* @param requestid
*/
public String sendRemarkDoneDataByForceRecycle(String requestid){
String resultCode = "0";
String portal_todourl = Constants.portal_todourl;
String bpm_app_workflowurl = Constants.bpm_app_workflowurl;
String username = Constants.username;
String passwd = Constants.passwd;
String bpm_workflowurl = Constants.bpm_workflowurl;
String center = Constants.center;
String bpm_app_requesturl = Constants.bpm_app_requesturl;
String zhjkbs = "weaver.interfaces.dito.action.RequestForceRecycle2PortalAction.sendTodoDataByForceRecycle" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
RecordSet rs = new RecordSet();
String message = "流程强制收回操作,完成未完成的抄送数据";
BaseBean bb = new BaseBean();
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
String actionType = "3";
try {
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(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
JSONArray taskObjectList = new JSONArray();
String sql = requestBaseInfoUtil.getRemark89Sql(requestid);
bb.writeLog("sendRemarkDoneDataByForceRecycle--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()) {
String loginid = rs.getString("loginid");
String staffid = rs.getString("staffid");
String userid = rs.getString("userid");
JSONObject taskObject = new JSONObject();
taskObject.put("creator", loginid);
taskObject.put("staffid", staffid);
taskObject.put("userid", userid);
taskObjectList.add(taskObject);
}
bb.writeLog("sendRemarkDoneDataByForceRecycle-taskObjectList:"+taskObjectList.size());
for(int i=0;i<taskObjectList.size();i++)
{
JSONObject dataObject = taskObjectList.getJSONObject(i);
String userid = dataObject.getString("userid");
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode", requestid+"_cs_"+userid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
bb.writeLog("sendRemarkDoneDataByForceRecycle---requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("sendRemarkDoneDataByForceRecycle---msgdata:"+msgdata);
if (!"".equals(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
if (msgObject.containsKey("resultCode")) {
resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,"",zhjkbs,userid,message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid,message);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return resultCode;
}
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
}

@ -0,0 +1,30 @@
package weaver.interfaces.dito.action;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.card.SendRequestToCardUtil;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
/***
*
*/
public class SendRequest2CardAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
// String requestid = Util.null2String(requestInfo.getRequestManager().getRequestid());
//
// User user = requestInfo.getRequestManager().getUser();
// String nodeid = requestInfo.getRequestManager().getNodeid()+"";
// String workflowId = requestInfo.getRequestManager().getWorkflowid()+"";
//
// SendRequestToCardUtil sendRequestToCardUtil = new SendRequestToCardUtil();
// sendRequestToCardUtil.sendRequestAtToCard(requestid,user, nodeid,workflowId);
return Action.SUCCESS;
}
}

@ -0,0 +1,155 @@
package weaver.interfaces.dito.archiving;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
/***
*
*/
public class RequestArchingCompleteForwardUtil {
/***
*
*
* @param list
*/
public void monitorCompleteRequestForward(List<Map<String,String>> list,String notes,User user){
BaseBean bb = new BaseBean();
for(int i=0;i<list.size();i++){
Map<String,String> dataMap = list.get(i);
String requestid = Util.null2String(dataMap.get("lcid"));
String userid = Util.null2String(dataMap.get("userid"));
String nodeid = Util.null2String(dataMap.get("nodeid"));
String nodename = Util.null2String(dataMap.get("nodename"));
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
String creater = Util.null2String(dataMap.get("creater"));
bb.writeLog("monitorFinishedWorkflowForwardByRequestid-userid:"+userid);
bb.writeLog("monitorFinishedWorkflowForwardByRequestid-nodeid:"+nodeid);
bb.writeLog("monitorFinishedWorkflowForwardByRequestid-requestid:"+requestid);
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
monitorCompleteRequestForwardByUserId(requestid,userid,nodeid,workflowname,requestname,nodename,notes,creater);
}
}
}
/***
*
* @param requestid
* @param userid
* @param nodeid
* @param workflowname
* @param requestname
* @param nodename
*/
private void monitorCompleteRequestForwardByUserId(String requestid,String userid,String nodeid,String workflowname,String requestname,String nodename,String notes,String creater){
BaseBean bb = new BaseBean();
bb.writeLog("monitorFinishedWorkflowForwardByUserId-requestid:"+requestid);
String zhjkbs = "weaver.interfaces.dito.archiving.RequestArchingCompleteForwardUtil.monitorCompleteRequestForwardByUserId" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
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 mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String actionType = "3" ;
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
try {
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(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",creater);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",nodeid);
requestObject.put("nodeName",nodename);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode", "weaver"+requestid+"_zf_"+userid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("monitorFinishedWorkflowForwardByUserId-msgdata:"+msgdata);
if(StringUtils.isNotEmpty(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/***
*
* @param messageTitle
* @return
*/
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
}

@ -0,0 +1,151 @@
package weaver.interfaces.dito.archiving;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
/***
*
*/
public class RequestArchingCompleteRemark89Util {
/**
*
*
* @param list
*/
public void monitorCompleteRequestRemark89(List<Map<String,String>> list, String notes,User user){
BaseBean bb = new BaseBean();
for(int i=0;i<list.size();i++){
Map<String,String> dataMap = list.get(i);
String requestid = Util.null2String(dataMap.get("lcid"));
String userid = Util.null2String(dataMap.get("userid"));
String nodeid = Util.null2String(dataMap.get("nodeid"));
String nodename = Util.null2String(dataMap.get("nodename"));
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
String creater = Util.null2String(dataMap.get("creater"));
bb.writeLog("monitorCompleteRequestRemark89-userid:"+userid);
bb.writeLog("monitorCompleteRequestRemark89-nodeid:"+nodeid);
bb.writeLog("monitorCompleteRequestRemark89-requestid:"+requestid);
if(StringUtils.isNotBlank(requestid) && StringUtils.isNotBlank(nodeid)){
monitorCompleteRequestRemark89ByUserid(requestid,userid,nodeid,workflowname,requestname,nodename,notes,creater);
}
}
}
/***
*
* @param requestid
* @param userid
* @param nodeid
* @param workflowname
* @param requestname
* @param nodename
* @param notes
*/
private void monitorCompleteRequestRemark89ByUserid(String requestid,String userid,String nodeid,String workflowname,String requestname,String nodename,String notes,String creater){
BaseBean bb = new BaseBean();
bb.writeLog("monitorCompleteWorkflowCopyToByUserid-requestid:"+requestid);
String zhjkbs = "weaver.interfaces.dito.archiving.RequestArchingCompleteRemark89Util.monitorCompleteRequestRemark89ByUserid" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String bpm_app_workflowurl = Constants.bpm_app_workflowurl;
String bpm_app_requesturl = Constants.bpm_app_requesturl;
String portal_todourl = Constants.portal_todourl;
String username = Constants.username;
String passwd = Constants.passwd;
String center = Constants.center;
String bpm_workflowurl = Constants.bpm_workflowurl;
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String actionType = "3" ;
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
RecordSet rs = new RecordSet();
try {
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");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",creater);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",nodeid);
requestObject.put("nodeName",nodename);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode", requestid+"_cs_"+userid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
bb.writeLog("monitorFinishedWorkflowCopyToByUserid-requestObject:"+requestObject.toJSONString());
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("monitorFinishedWorkflowCopyToByUserid-msgdata:"+msgdata);
if(StringUtils.isNotEmpty(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/***
*
* @param messageTitle
* @return
*/
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
}

@ -0,0 +1,380 @@
package weaver.interfaces.dito.archiving;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.engine.core.context.Context;
import com.engine.workflowDesign.cmd.autoForecast.GetSimpleModeDataCmd;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
/***
*
*/
public class RequestArchingSendPortalUtil {
RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
/***
*
* @param requestids
* @param user
*/
public void doSimpleModeDataByMonitor(String requestids,User user){
if(StringUtils.isNotBlank(requestids)) {
String[] lcids = requestids.split(",");
for (int i = 0; i < lcids.length; i++) {
String requestid = lcids[i];
doSimpleModeDataByMonitor2Requestid(requestid,user);
}
}
}
/***
*
* @param requestid
* @param user
*/
public void doSimpleModeDataByMonitor2Requestid(String requestid,User user){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
try{
String workflowid = "" ;
if(StringUtils.isNotBlank(requestid)){
String sql = " select workflowid from workflow_requestbase where requestid = "+requestid ;
rs.executeQuery(sql);
if(rs.next()){
workflowid = Util.null2String(rs.getString("workflowid")) ;
}
bb.writeLog("doSimpleModeDataByMonitor2Requestid:"+workflowid);
if(StringUtils.isNotBlank(workflowid)){
Map<String, Object> params = new HashMap<String, Object>();
params.put("requestid",requestid);
params.put("workflowid",workflowid);
params.put("resetForecast","1");
bb.writeLog("调用智能预测");
new GetSimpleModeDataCmd(params,user).execute(Context.getCommandComtext());
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("e:"+e.getMessage());
}
}
/***
*
*/
public void monitorArchived(String requestid,String userid){
monitorArchivedByTodo(requestid,userid);
// monitorArchivedByToRead(requestid,userid);
}
/***
* todo
* @param requestids
*/
public void monitorArchivedByTodo(String requestids,String currentUserId){
BaseBean bb = new BaseBean();
if(StringUtils.isNotBlank(requestids)){
String[] lcids = requestids.split(",");
for(int i=0;i<lcids.length;i++){
String requestid = lcids[i];
bb.writeLog("monitorArchivedByTodo:requestid:"+requestid);
monitorArchivedByTodo4Requestid(requestid,currentUserId);
}
}
}
/***
* todo
* @param requestid
* @param currentUserId
*/
public void monitorArchivedByTodo4Requestid(String requestid,String currentUserId) {
BaseBean bb = new BaseBean();
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.monitor.SendPortalMonitorUtil.monitorArchivedByTodo4Requestid" ;
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
bb.writeLog("monitorArchivedByTodo4Requestid");
String terminal = "1" ;
String taskType = "0";
String actionType = "3" ;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
try {
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
bb.writeLog("monitorArchivedByTodo4Requestid---requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
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.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,"");
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"");
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/***
* toread
* @param requestids
*/
// public void monitorArchivedByToRead(String requestids,String currentUserId){
//
// BaseBean bb = new BaseBean();
// bb.writeLog("monitorArchivedByToRead");
//
// if(StringUtils.isNotBlank(requestids)) {
// String[] lcids = requestids.split(",");
// for (int i = 0; i < lcids.length; i++) {
// String requestid = lcids[i];
// monitorArchivedByToRead4Rquestid(requestid,currentUserId);
// }
// }
// }
/***
* toread
* @param requestid
* @param currentUserId
*/
// public void monitorArchivedByToRead4Rquestid(String requestid,String currentUserId){
//
// 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.monitor.SendPortalMonitorUtil.monitorArchivedByToRead4Rquestid" ;
//
// SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
// HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
// String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
//
// RecordSet rs = new RecordSet();
// BaseBean bb = new BaseBean();
// bb.writeLog("monitorArchivedByToRead4Rquestid");
// String terminal = "1" ;
// String taskType = "1";
// String actionType = "0" ;
// 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(StringUtils.isNotEmpty(mobileJumpUrl)){
// urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
// urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
// }
//
// Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
// String currentNodeId = baseMap.get("currentnodeid");
// String currentNodeName = baseMap.get("currentnodeid");
// String workflowname = baseMap.get("workflowname");
// String createrLoginId = baseMap.get("createrloginid");
// String createrLastName = baseMap.get("createrusername");
// String requestname = baseMap.get("requestname");
// String currentnodetype = baseMap.get("currentnodetype");
// bb.writeLog("currentnodetype:"+currentnodetype);
//
// if("3".equals(currentnodetype)){
//
// JSONArray taskObjectList = new JSONArray();
//
// String sql = " select t2.id as userid,c1."+cus_staff+" as staffid,h1.loginid \n" +
// " from ( select distinct id from workflow_forecastOperator t1 where t1.requestid = "+requestid+" and t1.nodeid ="+currentNodeId+" and t1.operateType in(-3,-4) ) t2 " +
// " left join cus_fielddata c1 on c1.id = t2.id and c1.scopeid="+scopeid+" and c1.scope = '"+scope+"' \n" +
// " left join (select id,lastname,loginid,email from hrmresource union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.id \n" ;
//
// bb.writeLog("monitorArchivedByToRead4Rquestid-sql:"+sql);
// rs.executeQuery(sql);
// while (rs.next()) {
// String creator = rs.getString("loginid");
// String staffid = rs.getString("staffid");
// String userid = rs.getString("userid");
//
// JSONObject taskObject = new JSONObject();
// taskObject.put("staffid", staffid);
// taskObject.put("creator",creator);
// taskObject.put("userid", userid);
// taskObjectList.add(taskObject);
// }
//
// for(int i=0;i<taskObjectList.size();i++)
// {
// JSONObject dataObject = taskObjectList.getJSONObject(i);
// String staffid = dataObject.getString("staffid");
// String userid = dataObject.getString("userid");
// String creator = dataObject.getString("creator");
//
// JSONObject requestObject = new JSONObject();
// requestObject.put("creator",createrLoginId);
// requestObject.put("title",requestname);
// requestObject.put("messageContent",requestname);
// requestObject.put("nodeId",currentNodeId);
// requestObject.put("nodeName",currentNodeName);
// requestObject.put("ticketType",workflowname);
//
// requestObject.put("center",center);
// requestObject.put("taskCode", requestid+"_cs_"+userid);
// requestObject.put("taskType",taskType);
// requestObject.put("actionType",actionType);
// requestObject.put("createDate",processTime);
// requestObject.put("messageTitle",getShortMessageTitle(requestname));
// requestObject.put("terminal",terminal);
// requestObject.put("urlPc",urlPc);
// requestObject.put("urlApp",urlApp);
// requestObject.put("urlDing",urlDing);
//
//
// 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",staffid);
// taskObject.put("operatorCode",operatorCode);
//
// JSONArray taskArray = new JSONArray();
// taskArray.add(taskObject);
//
// requestObject.put("taskObjectList",taskArray);
// String auth = username + ":" + passwd;
// bb.writeLog("monitorArchivedByToRead4Rquestid---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,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,userid);
// }else{
// String resultmsg = msgObject.getString("resultMsg");
// sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid);
// }
// }
// }
// }
// }
// } catch (Exception e) {
// e.printStackTrace();
// bb.writeLog("monitorArchivedByToRead4Rquestid-e:"+e);
// }
// }
/***
*
* @param messageTitle
* @return
*/
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
}

@ -0,0 +1,157 @@
package weaver.interfaces.dito.archiving;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class RequestArchvingQueryUtil {
/***
*
*
*
* @param requestids
* @return
*/
public Map<String,String> queryRequestNodeIdByArchving(String requestids){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
Map<String,String> dataMap = new HashMap<String,String>();
try{
String sql =" select requestid,currentnodeid from workflow_requestbase where requestid in("+requestids+") ";
bb.writeLog("queryRequestNodeIdByArchving-sql:"+sql);
rs.execute(sql);
while (rs.next()){
String requestid = Util.null2String(rs.getString("requestid"));
String currentnodeid = Util.null2String(rs.getString("currentnodeid"));
dataMap.put(requestid,currentnodeid);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("queryRequestRemarkByArchving-e:"+e);
}
return dataMap;
}
/**
*
*
* @param requestids
* @return
*/
public List<Map<String,String>> queryWorkflowRemarkByRequestid(String requestids,Map<String,String> nodeMap){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
String[] requestArray = requestids.split(",");
for(int i = 0;i<requestArray.length;i++){
String requestid = requestArray[i];
String currentnodeid = nodeMap.get(requestid);
if(StringUtils.isNotBlank(requestid) && StringUtils.isNotBlank(currentnodeid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark in (8,9)\n" +
" and t.requestid in("+requestid +") and t.nodeid in("+currentnodeid+") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowCopyToByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
}
}
bb.writeLog("queryWorkflowCopyToByRequestid-list:"+list.size());
return list;
}
/***
*
*
*
* @param requestids
* @return
*/
public List<Map<String,String>> queryWorkflowForwardByRequestid(String requestids,Map<String,String> nodeMap){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
String[] requestArray = requestids.split(",");
for(int i = 0;i<requestArray.length;i++){
String requestid = requestArray[i];
String currentnodeid = nodeMap.get(requestid);
if(StringUtils.isNotBlank(requestid) && StringUtils.isNotBlank(currentnodeid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark = 1 \n" +
" and t.requestid in("+requestid +") and t.nodeid in("+currentnodeid+") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowForwardByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
bb.writeLog("queryWorkflowForwardByRequestid-list:"+list.size());
}
}
return list;
}
}

@ -0,0 +1,593 @@
package weaver.interfaces.dito.card;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.wfTodoCard.CardInfo;
import com.customization.wfTodoCard.ContentInfo;
import com.customization.wfTodoCard.TitleInfo;
import com.customization.wfTodoCard.ViewDetail;
import com.customization.wfTodoCard.service.CheckSendCardService;
import com.customization.wfTodoCard.service.TodoCardService;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.util.*;
public class SendRemarkToCardUtil {
String oaAuthKey = new BaseBean().getPropValue("workflowTodoCard", "oaAuthKey");
public void sendRequestRemarkToCard(String requestId, String workflowId, String remark, User user){
SendRequestToCardUtil sendRequestToCardUtil = new SendRequestToCardUtil();
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
try{
String isMessageRemind = "";
String sql1 = "select id,WORKFLOWNAME, isMessageRemind,icon from workflow_base where id='" + workflowId + "'";
bb.writeLog("sendRequestRemarkToCard-sql1:"+sql1);
rs.executeQuery(sql1);
if(rs.next()){
isMessageRemind = rs.getString("isMessageRemind");
}
bb.writeLog("sendRequestRemarkToCard-isMessageRemind:"+isMessageRemind);
if("1".equals(isMessageRemind)){
bb.writeLog("sendRequestRemarkToCard-remark:"+remark);
List<String> result = new ArrayList<String>();
String title = "";
if(StringUtils.isNotBlank(remark)){
Document doc = Jsoup.parse(remark);
// 选择所有包含 atsome - uid 属性的元素
Elements uidElements = doc.select("[atsome-uid]");
Iterator<Element> uidIt = uidElements.iterator();
while(uidIt.hasNext()) {
Element element = uidIt.next();
String atsomeUid = element.attr("atsome-uid");
if(!result.contains(atsomeUid)){
result.add(atsomeUid);
}
}
Elements pElements = doc.select("p");
Iterator<Element> pIt = pElements.iterator();
while(pIt.hasNext()) {
Element element = pIt.next();
title += element.text();
}
}
bb.writeLog("sendRequestRemarkToCard-title1:"+title);
if(StringUtils.isNotBlank(title)){
title = StringEscapeUtils.unescapeHtml4(title);
}
bb.writeLog("sendRequestRemarkToCard-title2:"+title);
if(result.size() > 0){
for(int i= 0;i<result.size();i++){
String receiverId = result.get(i);
bb.writeLog("sendRequestRemarkToCard-receiverId:"+receiverId);
if(org.apache.commons.lang3.StringUtils.isNotBlank(receiverId)){
String lastname = "";
String sql = "select lastname,workcode,systemlanguage from hrmresource where id=?" ;
bb.writeLog("sendRequestRemarkToCard-sql:"+sql);
rs.executeQuery(sql, new Object[] { receiverId });
if (rs.next()){
lastname = rs.getString("lastname");
}
if(StringUtils.isNotBlank(lastname)){
title = title.replace(lastname,lastname+" ");
}
}
}
bb.writeLog("sendRequestRemarkToCard-title2:"+title);
for(int i= 0;i<result.size();i++){
String receiverId = result.get(i);
bb.writeLog("sendRequestRemarkToCard-receiverId:"+receiverId);
if(StringUtils.isNotBlank(receiverId)){
String systemlanguage = "";
String workcode = "";
String sql = "select lastname,workcode,systemlanguage from hrmresource where id=?" ;
bb.writeLog("sendRequestRemarkToCard-sql:"+sql);
rs.executeQuery(sql, new Object[] { receiverId });
if (rs.next()){
systemlanguage = rs.getString("systemlanguage");
workcode = rs.getString("workcode");
}
bb.writeLog("sendRequestRemarkToCard-systemlanguage:"+systemlanguage);
bb.writeLog("sendRequestRemarkToCard-workcode:"+workcode);
new CheckSendCardService().sendShareCard(""+user.getUID(), receiverId, requestId,"",title,"");
//sendDefaultByCmd(workflowId,requestId,receiverId, "1", systemlanguage,workcode,title);
}
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}
public void sendDefaultByCmd(String workflowId, String requestId, String receiverId, String logintype, String language,String workcode,String expandMsg) {
BaseBean bb = new BaseBean();
RecordSet rd = new RecordSet();
bb.writeLog("sendDefaultByCmd-default >>>>>");
String icon = "";
String isMessageRemind = "";
String sql1 = "select id,WORKFLOWNAME, isMessageRemind,icon from workflow_base where id='" + workflowId + "'";
bb.writeLog("sendDefaultByCmd-sql1:"+sql1);
rd.executeQuery(sql1);
if(rd.next()){
icon = rd.getString("icon");
isMessageRemind = rd.getString("isMessageRemind");
}
bb.writeLog("sendDefaultByCmd-icon:"+icon);
bb.writeLog("sendDefaultByCmd-isMessageRemind:"+isMessageRemind);
String requestName = "";
String createDate = "";
String createTime = "";
if ("1".equals(isMessageRemind)) {
rd.executeQuery("select WORKFLOWID, CREATER,REQUESTNAME, CREATETIME, CREATEDATE from workflow_requestbase where REQUESTID = '" + requestId + "'");
if (rd.next()) {
requestName = rd.getString("REQUESTNAME");
createDate = rd.getString("CREATEDATE");
createTime = rd.getString("CREATETIME");
}
}
bb.writeLog("sendDefaultByCmd-requestName:"+requestName);
bb.writeLog("sendDefaultByCmd-createDate:"+createDate);
bb.writeLog("sendDefaultByCmd-createTime:"+createTime);
JSONArray callAuth = new JSONArray();
callAuth.add((new JSONObject())
.fluentPut("name", "weaver_userid").fluentPut("value", receiverId));
callAuth.add((new JSONObject())
.fluentPut("name", "usertoken").fluentPut("value", oaAuthKey));
callAuth.add((new JSONObject())
.fluentPut("name", "weaver_usertype").fluentPut("value", logintype));
callAuth.add((new JSONObject())
.fluentPut("name", "weaver_userlanguage").fluentPut("value", language));
doAtSend(requestName, icon, null, workflowId,requestId,language,createDate,createTime,workcode,expandMsg);
}
// public void copySendNeedSubmit(String requestname,String requestid,String nodeid){
// RecordSet rs = new RecordSet();
//
// String workflowId = "";
// String userid = "";
// String requestName = "";
// String createtime = "";
// String createdate = "";
//
// String sql = "select WORKFLOWID, CREATER,REQUESTNAME, CREATETIME, CREATEDATE from workflow_requestbase where REQUESTID = '" + requestid + "'";
// rs.executeQuery(sql);
// if(rs.next()){
// workflowId = rs.getString("WORKFLOWID");
// userid = rs.getString("CREATER");
// requestName = rs.getString("REQUESTNAME");
// createtime = rs.getString("CREATETIME");
// createdate = rs.getString("CREATEDATE");
// }
//
// String isMessageRemind = "";
// String icon = "";
// String messageRemindScope = "";
// if(StringUtils.isNotBlank(workflowId)){
// sql = "select id, WORKFLOWNAME, messageRemindScope, isMessageRemind,icon from workflow_base where id=?" ;
// rs.executeQuery(sql, new Object[] { workflowId });
// if(rs.next()){
// isMessageRemind = rs.getString("isMessageRemind");
// icon = rs.getString("icon");
// messageRemindScope = rs.getString("messageRemindScope");
// }
// }
//
// String ifMr = "";
// String mainid = "";
// if("1".equals(isMessageRemind)){
// sql = "select id, workflowid, nodeid, sfmr from uf_wftodocontent where workflowid =" + workflowId + " and nodeid =" + nodeid ;
// rs.executeQuery(sql);
// if (rs.next()) {
// mainid = rs.getString("id");
// ifMr = rs.getString("sfmr");
// }
// }else{
// ifMr = "1";
// }
// if ("1".equals(ifMr)) {
// sql = "select id from uf_wftodocontent where workflowid = '" + workflowId + "' and nodeid ='0'";
// rs.executeQuery(sql);
// if (rs.next()) {
// mainid = rs.getString("id");
// }
// }
//
// List<String> filedNameList = new ArrayList<>();
// sql = "select fieldname from uf_wftodocontent_dt1 where mainid = '" + mainid + "' and selected =1 order by sort asc" ;
// rs.executeQuery(sql);
// while (rs.next()) {
// String fieldname = rs.getString("fieldname");
// if (!fieldname.startsWith("sys_")){
// filedNameList.add(fieldname);
// }
// }
//
// JSONArray callAuth = new JSONArray();
// callAuth.add((new JSONObject())
// .fluentPut("name", "weaver_userid").fluentPut("value", receiverId));
// callAuth.add((new JSONObject())
// .fluentPut("name", "usertoken").fluentPut("value", this.oaAuthKey));
// callAuth.add((new JSONObject())
// .fluentPut("name", "weaver_usertype").fluentPut("value", (logintype == null) ? "1" : logintype));
// callAuth.add((new JSONObject())
// .fluentPut("name", "weaver_userlanguage").fluentPut("value", language));
// String callAuthStr = callAuth.toJSONString();
//
//
// }
public void doAtSend(String requestname,String icon, List<String> fieldNameList,String workflowId,String requestId,String language,String CreateDate,String CreateTime,String WorkCode,String expandMsg){
BaseBean bb = new BaseBean();
bb.writeLog("doAtSend--requestname:"+requestname);
bb.writeLog("doAtSend-expandMsg: " + expandMsg);
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname,workflowId,requestId,language);
bb.writeLog("doAtSend-cardJsonArray:"+cardJsonArray.toJSONString());
Map<String,String> sendUserMap = getRequestCreator(requestId);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", CreateDate + " " + CreateTime)
);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", sendUserMap.get("name"))
);
String cardData = cardJsonArray.toJSONString();
bb.writeLog("doAtSend-casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, requestId);
if (StringUtils.isNotBlank(expandMsg)) {
expandMsg = expandMsg.replace("&nbsp;", " ");
bb.writeLog("doAtSend-expandMsg2: " + expandMsg);
cardInfo.setExpandMsg(expandMsg);
}
bb.writeLog("doAtSend-cardInfo :: " + cardInfo.toString());
String uid = UUID.randomUUID().toString();
String message = TodoCardService.createTodoCard(sendUserMap.get("code"),WorkCode, 1, uid, cardInfo);
bb.writeLog("doAtSend-message:"+message);
}
public CardInfo baseCardInfo(String requestName,String color, String icon, String cardData, String requestid){
RecordSet recordSet = new RecordSet();
// 卡片标题替换成流程标题
recordSet.executeQuery("select a.WORKFLOWNAME from workflow_base a left join workflow_requestbase b on a.id=b.WORKFLOWID where b.REQUESTID ="+requestid);
if (recordSet.next()){
requestName = Util.null2String(recordSet.getString("WORKFLOWNAME"));
}
TitleInfo titleInfo = new TitleInfo();
titleInfo.setName(requestName);
titleInfo.setColor(null==color || "".equals(color)?"#F4F5F7":color);
titleInfo.setIconName(icon);
CardInfo cardInfo = new CardInfo();
cardInfo.setTitleInfo(titleInfo);
ContentInfo contentInfo = new ContentInfo();
contentInfo.setType("keyInfo");
contentInfo.setOrder(1);
contentInfo.setData(cardData);
List<ContentInfo> contentInfos = new ArrayList<>();
contentInfos.add(contentInfo);
cardInfo.setContentInfos(contentInfos);
recordSet.executeQuery("select pcxqdz, appxqdz from uf_cardifno_conf"); // 配置跳转地址
if (recordSet.next()){
ViewDetail viewDetail = new ViewDetail();
String detailPcUrl = Util.null2String(recordSet.getString("pcxqdz"));
String detailAppUrl = Util.null2String(recordSet.getString("appxqdz"));
if (!"".equals(detailPcUrl)){
viewDetail.setPcUrl(detailPcUrl + requestid);
}
if (!"".equals(detailAppUrl)){
viewDetail.setAppUrl(detailAppUrl + requestid);
}
viewDetail.setOpenMethod("H5");
cardInfo.setViewDetailInfo(viewDetail);
}
return cardInfo;
}
private Map<String, String> getRequestCreator(String requestid) {
Map<String, String> map = new HashMap<String, String>();
RecordSet recordSet = new RecordSet();
recordSet.executeQuery("select h.LASTNAME, h.WORKCODE from workflow_requestbase a left join hrmresource h on h.id=a.CREATER where a.requestid = " + requestid, new Object[0]);
if (recordSet.next()) {
map.put("name", recordSet.getString("LASTNAME"));
map.put("code", recordSet.getString("WORKCODE"));
}
return map;
}
// 卡片通用参数
private JSONArray getCardParam(List<String> filedNameList,String requestName,String workflowId,String requestId,String language){
BaseBean bb = new BaseBean();
bb.writeLog(">>>> get param :"+requestName);
JSONArray cardJsonArray = new JSONArray();
cardJsonArray.add(
new JSONObject().fluentPut("name", "Title").fluentPut("value", requestName)
);
// 参数存储
Map<String, String> paramMap = new HashMap<>();
RecordSet rd = new RecordSet();
Integer billid=0; // 表单id
if (null != filedNameList && filedNameList.size() > 0) {
String queryTablesql = "select TABLENAME,b.id billid from workflow_base a inner join workflow_bill b on a.FORMID =b.ID where a.id = '" + workflowId+ "'";
rd.executeQuery(queryTablesql);
String tablename = "";
if (rd.next()) {
tablename = rd.getString("TABLENAME");
billid = rd.getInt("billid");
String selectSql = String.join(",", filedNameList);
String querySql = "select " + selectSql + " from " + tablename + " where requestid = '" + requestId + "'";
rd.executeQuery(querySql);
if (rd.next()) {
for (String tempname : filedNameList) {
paramMap.put(tempname, Util.null2String(rd.getString(tempname)));
}
}
}
String sqlSelectLabel="select wb.FIELDNAME, hb.LABELNAME " +
"from workflow_billfield wb left join htmllabelinfo hb on hb.INDEXID = wb.FIELDLABEL " +
"where wb.BILLID = ? and hb.languageid=?";
RecordSet queryLabel=new RecordSet();
queryLabel.executeQuery(sqlSelectLabel,billid, language);
Map<String,String> labelMap = new HashMap<>();
while (queryLabel.next()){
String fieldname = queryLabel.getString("FIELDNAME");
String labelname = queryLabel.getString("LABELNAME");
labelMap.put(fieldname,labelname);
}
Map<String,Map<String,String>> selectItemMap = mapSelectItem(billid); // 选择框选项
Map<String,String> liulanMap = mapLiuLan(billid); // 浏览按钮
Map<String,String> commonLiuLanMap = mapCommonLiuLan(billid); // 浏览按钮
Set<String> checkSet = getCheckFieldName(billid); // check字段
Set<String> fileFieldSet = getFileFieldSet(billid); // 文件字段
bb.writeLog("》》》 select item >> "+ JSON.toJSONString(selectItemMap));
bb.writeLog("》》》 liulanMap >> "+ JSON.toJSONString(liulanMap));
for (String tempname : filedNameList) {
String labelName = labelMap.getOrDefault(tempname,tempname);
String value = paramMap.getOrDefault(tempname, "");
if (!"".equals(value)){
bb.writeLog(">>> for tempname >> "+tempname);
if (selectItemMap.containsKey(tempname)){ // 选择框
bb.writeLog("select item >> "+tempname+" >> "+value);
Map<String,String> selectItem = selectItemMap.get(tempname);
String [] valueArray = value.split(",");
List<String> valueList = new ArrayList<>();
for (String tempValue : valueArray){
String tempValueName = selectItem.getOrDefault(tempValue,tempValue);
valueList.add(tempValueName);
}
bb.writeLog("> select item >> "+tempname+" >> "+valueList);
value = String.join(", ",valueList);
} else if (checkSet.contains(tempname)){ // check字段
bb.writeLog("checkSet >> "+tempname+" >> "+value);
value= "1".equals(value) ? "Yes" : "No";
} else if (fileFieldSet.contains(tempname)){ // 附件字段
bb.writeLog("fileFieldSet >> "+tempname+" >> "+value);
List<String> fileList = new ArrayList<>();
RecordSet queryTemp = new RecordSet();
queryTemp.executeQuery("select IMAGEFILENAME from docimagefile where docid in ("+value+")");
while (queryTemp.next()){
String tempValueName = queryTemp.getString("IMAGEFILENAME");
fileList.add(tempValueName);
}
value = String.join(", ",fileList);
} else if (liulanMap.containsKey(tempname)){ //自定义浏览框
String searchById = liulanMap.get(tempname);
bb.writeLog("liulanMap >> "+tempname+" >> "+searchById);
String [] valueArray = value.split(",");
List<String> valueList = new ArrayList<>();
RecordSet queryTemp = new RecordSet();
for (String tempValue : valueArray){
bb.writeLog("liulanMap >> "+tempname+" >> "+searchById+" >> "+tempValue);
queryTemp.executeQuery(searchById,tempValue);
if (queryTemp.next()){
String tempValueName = queryTemp.getString(1);
bb.writeLog("query reuslt ");
valueList.add(tempValueName);
}else {
bb.writeLog("query reuslt null");
}
}
value = String.join(", ",valueList);
} else if (commonLiuLanMap.containsKey(tempname)){ // 公共浏览框类型
String fieldType = commonLiuLanMap.get(tempname);
bb.writeLog("commonLiuLanMap >> "+tempname+" >> "+fieldType + " >>value= "+value);
RecordSet queryTemp = new RecordSet();
switch (fieldType){
case "1": // 单选人力
queryTemp.executeQuery("select LASTNAME from hrmresource h where id =?",value);
if (queryTemp.next()){
value = Util.null2String(queryTemp.getString("LASTNAME"));
}
break;
case "17": // 多选人力
queryTemp.executeQuery("select LASTNAME from hrmresource h where id in ("+value+")");
List<String> valueList = new ArrayList<>();
while (queryTemp.next()){
valueList.add(Util.null2String(queryTemp.getString("LASTNAME")));
}
bb.writeLog("user list >> "+ JSON.toJSONString(valueList));
value = String.join(", ",valueList);
break;
case "4": // 单选部门
queryTemp.executeQuery("select DEPARTMENTNAME from hrmdepartment where id=?",value);
if (queryTemp.next()){
value = Util.null2String(queryTemp.getString("DEPARTMENTNAME"));
}
break;
case "57": // 多选部门
queryTemp.executeQuery("select DEPARTMENTNAME from hrmdepartment where id in ("+value+")");
List<String> valueList2 = new ArrayList<>();
while (queryTemp.next()){
valueList2.add(Util.null2String(queryTemp.getString("DEPARTMENTNAME")));
}
bb.writeLog("dep lis is >> "+ JSON.toJSONString(valueList2));
value = String.join(", ",valueList2);
break;
case "16": // 单选流程
queryTemp.executeQuery("select REQUESTNAME from workflow_requestbase where REQUESTID =?",value);
if (queryTemp.next()){
value = Util.null2String(queryTemp.getString("REQUESTNAME"));
}
break;
case "152": // 多选流程
queryTemp.executeQuery("select REQUESTNAME from workflow_requestbase where REQUESTID in ("+value+")");
List<String> valueList3 = new ArrayList<>();
while (queryTemp.next()){
valueList3.add(Util.null2String(queryTemp.getString("REQUESTNAME")));
}
bb.writeLog("request list >> "+ JSON.toJSONString(valueList3));
value = String.join(", ",valueList3);
break;
}
} else {
value = value.replace("&nbsp;", " ");
value = value.replace("<br>", " ");
}
}
cardJsonArray.add(
new JSONObject().fluentPut("name", labelName).fluentPut("value", value)
);
}
}
return cardJsonArray;
}
// 选择框选项数据
private Map<String,Map<String,String>> mapSelectItem(Integer billid){
RecordSet query = new RecordSet();
query.executeQuery("select a.FIELDNAME , b.SELECTVALUE , b.SELECTNAME from workflow_billfield a left join workflow_selectitem b on a.id=b.FIELDID where a.billid=? and a.fieldhtmltype=5 order by a.id",billid);
Map<String,Map<String,String>> map = new HashMap<>();
while (query.next()){
String fieldname = query.getString("FIELDNAME");
String selectvalue = query.getString("SELECTVALUE");
String selectname = query.getString("SELECTNAME");
if (map.containsKey(fieldname)){
map.get(fieldname).put(selectvalue,selectname);
}else{
Map<String,String> tempMap = new HashMap<>();
tempMap.put(selectvalue,selectname);
map.put(fieldname,tempMap);
}
}
return map;
}
// 勾选框字段名
private Set<String> getCheckFieldName(Integer billid){
Set<String> set = new HashSet<>();
RecordSet query = new RecordSet();
query.executeQuery("select FIELDNAME from workflow_billfield where BILLID =? and FIELDHTMLTYPE=4",billid);
while (query.next()){
set.add(query.getString("FIELDNAME"));
}
return set;
}
// 附件选择
private Set<String> getFileFieldSet(Integer billid){
Set<String> set = new HashSet<>();
RecordSet query = new RecordSet();
query.executeQuery("select FIELDNAME from workflow_billfield where BILLID =? and FIELDHTMLTYPE=6",billid);
while (query.next()){
set.add(query.getString("FIELDNAME"));
}
return set;
}
// 浏览按钮
private Map<String,String> mapLiuLan(Integer billid){
RecordSet query = new RecordSet();
Map<String,String> map = new HashMap<>();
query.executeQuery("select FIELDNAME, FIELDDBTYPE from workflow_billfield where BILLID =? and FIELDDBTYPE like 'browser.%'",billid);
while (query.next()){
String fieldname = query.getString("FIELDNAME");
String fielddbtpye = query.getString("FIELDDBTYPE");
String showname = fielddbtpye.substring(8);
RecordSet query2 = new RecordSet();
query2.executeQuery("select searchById from mode_browser where showname =?",showname);
if (query2.next()){
String searchById = query2.getString("searchById");
map.put(fieldname,searchById);
}
}
return map;
}
// 公共浏览框类型
private Map<String,String> mapCommonLiuLan(Integer billid){
Map<String,String> map = new HashMap<>();
RecordSet query = new RecordSet();
query.executeQuery("select FIELDNAME, type from workflow_billfield wb where FIELDHTMLTYPE=3 and BILLID = ?",billid);
while (query.next()){
String fieldname = query.getString("FIELDNAME");
String fielddbtpye = query.getString("type");
map.put(fieldname,fielddbtpye);
}
return map;
}
}

@ -0,0 +1,564 @@
package weaver.interfaces.dito.card;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.wfTodoCard.*;
import com.customization.wfTodoCard.service.CheckSendCardService;
import com.customization.wfTodoCard.service.TodoCardService;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.util.*;
public class SendRequestToCardUtil {
String oaAuthKey = new BaseBean().getPropValue("workflowTodoCard", "oaAuthKey");
public void sendRequestAtToCard(String requestId, User user, String nodeid,String workflowId,String remark){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
try{
bb.writeLog("SendRequestToCardUtil-remark:"+remark);
List<String> result = new ArrayList<String>();
String title = "";
if(StringUtils.isNotBlank(remark)){
Document doc = Jsoup.parse(remark);
// 选择所有包含 atsome - uid 属性的元素
Elements uidElements = doc.select("[atsome-uid]");
Iterator<Element> uidIt = uidElements.iterator();
while(uidIt.hasNext()) {
Element element = uidIt.next();
String atsomeUid = element.attr("atsome-uid");
if(!result.contains(atsomeUid)){
result.add(atsomeUid);
}
}
Elements pElements = doc.select("p");
Iterator<Element> pIt = pElements.iterator();
while(pIt.hasNext()) {
Element element = pIt.next();
title += element.text();
}
}
bb.writeLog("SendRequestToCardUtil-title1:"+title);
if(StringUtils.isNotBlank(title)){
title = StringEscapeUtils.unescapeHtml4(title);
}
bb.writeLog("SendRequestToCardUtil-title2:"+title);
if(result.size() > 0){
for(int i= 0;i<result.size();i++){
String receiverId = result.get(i);
if(StringUtils.isNotBlank(receiverId)){
String lastname = "";
String sql = "select lastname,workcode,systemlanguage from hrmresource where id=?" ;
rs.executeQuery(sql, new Object[] { receiverId });
if (rs.next()){
lastname = rs.getString("lastname");
}
if(StringUtils.isNotBlank(lastname)){
title = title.replace(lastname,lastname+" ");
}
}
}
bb.writeLog("SendRequestToCardUtil-title2:"+title);
for(int i= 0;i<result.size();i++){
String receiverId = result.get(i);
if(StringUtils.isNotBlank(receiverId)){
String systemlanguage = "";
String workcode = "";
String sql = "select lastname,workcode,systemlanguage from hrmresource where id=?" ;
rs.executeQuery(sql, new Object[] { receiverId });
if (rs.next()){
systemlanguage = rs.getString("systemlanguage");
workcode = rs.getString("workcode");
}
new CheckSendCardService().sendShareCard(""+user.getUID(), receiverId, requestId,"",title,"You have been tagged in a comment.");
//sendDefault(workflowId,requestId,receiverId, "1", systemlanguage,workcode,title);
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}
public void sendDefault(String workflowId, String requestId, String receiverId, String logintype, String language,String workcode,String expandMsg) {
BaseBean bb = new BaseBean();
RecordSet rd = new RecordSet();
bb.writeLog("sendRequestAtToCard-default >>>>>");
String icon = "";
String sql1 = "select id,WORKFLOWNAME, isMessageRemind,icon from workflow_base where id='" + workflowId + "'";
bb.writeLog("sendRequestAtToCard-sql1:"+sql1);
rd.executeQuery(sql1);
if(rd.next()){
icon = rd.getString("icon");
}
bb.writeLog("sendRequestAtToCard-icon:"+icon);
String requestName = "";
String createDate = "";
String createTime = "";
rd.executeQuery("select WORKFLOWID, CREATER,REQUESTNAME, CREATETIME, CREATEDATE from workflow_requestbase where REQUESTID = '" + requestId + "'");
if (rd.next()) {
requestName = rd.getString("REQUESTNAME");
createDate = rd.getString("CREATEDATE");
createTime = rd.getString("CREATETIME");
}
bb.writeLog("sendRequestAtToCard-requestName:"+requestName);
bb.writeLog("sendRequestAtToCard-createDate:"+createDate);
bb.writeLog("sendRequestAtToCard-createTime:"+createTime);
JSONArray callAuth = new JSONArray();
callAuth.add((new JSONObject())
.fluentPut("name", "weaver_userid").fluentPut("value", receiverId));
callAuth.add((new JSONObject())
.fluentPut("name", "usertoken").fluentPut("value", oaAuthKey));
callAuth.add((new JSONObject())
.fluentPut("name", "weaver_usertype").fluentPut("value", logintype));
callAuth.add((new JSONObject())
.fluentPut("name", "weaver_userlanguage").fluentPut("value", language));
doAtSend(requestName, icon, null, workflowId,requestId,language,createDate,createTime,workcode,expandMsg);
}
// public void copySendNeedSubmit(String requestname,String requestid,String nodeid){
// RecordSet rs = new RecordSet();
//
// String workflowId = "";
// String userid = "";
// String requestName = "";
// String createtime = "";
// String createdate = "";
//
// String sql = "select WORKFLOWID, CREATER,REQUESTNAME, CREATETIME, CREATEDATE from workflow_requestbase where REQUESTID = '" + requestid + "'";
// rs.executeQuery(sql);
// if(rs.next()){
// workflowId = rs.getString("WORKFLOWID");
// userid = rs.getString("CREATER");
// requestName = rs.getString("REQUESTNAME");
// createtime = rs.getString("CREATETIME");
// createdate = rs.getString("CREATEDATE");
// }
//
// String isMessageRemind = "";
// String icon = "";
// String messageRemindScope = "";
// if(StringUtils.isNotBlank(workflowId)){
// sql = "select id, WORKFLOWNAME, messageRemindScope, isMessageRemind,icon from workflow_base where id=?" ;
// rs.executeQuery(sql, new Object[] { workflowId });
// if(rs.next()){
// isMessageRemind = rs.getString("isMessageRemind");
// icon = rs.getString("icon");
// messageRemindScope = rs.getString("messageRemindScope");
// }
// }
//
// String ifMr = "";
// String mainid = "";
// if("1".equals(isMessageRemind)){
// sql = "select id, workflowid, nodeid, sfmr from uf_wftodocontent where workflowid =" + workflowId + " and nodeid =" + nodeid ;
// rs.executeQuery(sql);
// if (rs.next()) {
// mainid = rs.getString("id");
// ifMr = rs.getString("sfmr");
// }
// }else{
// ifMr = "1";
// }
// if ("1".equals(ifMr)) {
// sql = "select id from uf_wftodocontent where workflowid = '" + workflowId + "' and nodeid ='0'";
// rs.executeQuery(sql);
// if (rs.next()) {
// mainid = rs.getString("id");
// }
// }
//
// List<String> filedNameList = new ArrayList<>();
// sql = "select fieldname from uf_wftodocontent_dt1 where mainid = '" + mainid + "' and selected =1 order by sort asc" ;
// rs.executeQuery(sql);
// while (rs.next()) {
// String fieldname = rs.getString("fieldname");
// if (!fieldname.startsWith("sys_")){
// filedNameList.add(fieldname);
// }
// }
//
// JSONArray callAuth = new JSONArray();
// callAuth.add((new JSONObject())
// .fluentPut("name", "weaver_userid").fluentPut("value", receiverId));
// callAuth.add((new JSONObject())
// .fluentPut("name", "usertoken").fluentPut("value", this.oaAuthKey));
// callAuth.add((new JSONObject())
// .fluentPut("name", "weaver_usertype").fluentPut("value", (logintype == null) ? "1" : logintype));
// callAuth.add((new JSONObject())
// .fluentPut("name", "weaver_userlanguage").fluentPut("value", language));
// String callAuthStr = callAuth.toJSONString();
//
//
// }
public void doAtSend(String requestname,String icon, List<String> fieldNameList,String workflowId,String requestId,String language,String CreateDate,String CreateTime,String WorkCode,String expandMsg){
BaseBean bb = new BaseBean();
bb.writeLog("doAtSend--requestname:"+requestname);
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname,workflowId,requestId,language);
bb.writeLog("doAtSend-cardJsonArray:"+cardJsonArray.toJSONString());
Map<String,String> sendUserMap = getRequestCreator(requestId);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", CreateDate + " " + CreateTime)
);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", sendUserMap.get("name"))
);
String cardData = cardJsonArray.toJSONString();
bb.writeLog("doAtSend casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, requestId);
if (StringUtils.isNotBlank(expandMsg)) {
expandMsg = expandMsg.replace("&nbsp;", " ");
cardInfo.setExpandMsg(expandMsg);
}
bb.writeLog("doAtSend cardInfo :: " + cardInfo.toString());
String uid = UUID.randomUUID().toString();
String message = TodoCardService.createTodoCard(sendUserMap.get("code"),WorkCode, 1, uid, cardInfo);
bb.writeLog("message:"+message);
}
public CardInfo baseCardInfo(String requestName,String color, String icon, String cardData, String requestid){
RecordSet recordSet = new RecordSet();
// 卡片标题替换成流程标题
recordSet.executeQuery("select a.WORKFLOWNAME from workflow_base a left join workflow_requestbase b on a.id=b.WORKFLOWID where b.REQUESTID ="+requestid);
if (recordSet.next()){
requestName = Util.null2String(recordSet.getString("WORKFLOWNAME"));
}
TitleInfo titleInfo = new TitleInfo();
titleInfo.setName(requestName);
titleInfo.setColor(null==color || "".equals(color)?"#F4F5F7":color);
titleInfo.setIconName(icon);
CardInfo cardInfo = new CardInfo();
cardInfo.setTitleInfo(titleInfo);
ContentInfo contentInfo = new ContentInfo();
contentInfo.setType("keyInfo");
contentInfo.setOrder(1);
contentInfo.setData(cardData);
List<ContentInfo> contentInfos = new ArrayList<>();
contentInfos.add(contentInfo);
cardInfo.setContentInfos(contentInfos);
recordSet.executeQuery("select pcxqdz, appxqdz from uf_cardifno_conf"); // 配置跳转地址
if (recordSet.next()){
ViewDetail viewDetail = new ViewDetail();
String detailPcUrl = Util.null2String(recordSet.getString("pcxqdz"));
String detailAppUrl = Util.null2String(recordSet.getString("appxqdz"));
if (!"".equals(detailPcUrl)){
viewDetail.setPcUrl(detailPcUrl + requestid);
}
if (!"".equals(detailAppUrl)){
viewDetail.setAppUrl(detailAppUrl + requestid);
}
viewDetail.setOpenMethod("H5");
cardInfo.setViewDetailInfo(viewDetail);
}
return cardInfo;
}
private Map<String, String> getRequestCreator(String requestid) {
Map<String, String> map = new HashMap<String, String>();
RecordSet recordSet = new RecordSet();
recordSet.executeQuery("select h.LASTNAME, h.WORKCODE from workflow_requestbase a left join hrmresource h on h.id=a.CREATER where a.requestid = " + requestid, new Object[0]);
if (recordSet.next()) {
map.put("name", recordSet.getString("LASTNAME"));
map.put("code", recordSet.getString("WORKCODE"));
}
return map;
}
// 卡片通用参数
private JSONArray getCardParam(List<String> filedNameList,String requestName,String workflowId,String requestId,String language){
BaseBean bb = new BaseBean();
bb.writeLog(">>>> get param :"+requestName);
JSONArray cardJsonArray = new JSONArray();
cardJsonArray.add(
new JSONObject().fluentPut("name", "Title").fluentPut("value", requestName)
);
// 参数存储
Map<String, String> paramMap = new HashMap<>();
RecordSet rd = new RecordSet();
Integer billid=0; // 表单id
if (null != filedNameList && filedNameList.size() > 0) {
String queryTablesql = "select TABLENAME,b.id billid from workflow_base a inner join workflow_bill b on a.FORMID =b.ID where a.id = '" + workflowId+ "'";
rd.executeQuery(queryTablesql);
String tablename = "";
if (rd.next()) {
tablename = rd.getString("TABLENAME");
billid = rd.getInt("billid");
String selectSql = String.join(",", filedNameList);
String querySql = "select " + selectSql + " from " + tablename + " where requestid = '" + requestId + "'";
rd.executeQuery(querySql);
if (rd.next()) {
for (String tempname : filedNameList) {
paramMap.put(tempname, Util.null2String(rd.getString(tempname)));
}
}
}
String sqlSelectLabel="select wb.FIELDNAME, hb.LABELNAME " +
"from workflow_billfield wb left join htmllabelinfo hb on hb.INDEXID = wb.FIELDLABEL " +
"where wb.BILLID = ? and hb.languageid=?";
RecordSet queryLabel=new RecordSet();
queryLabel.executeQuery(sqlSelectLabel,billid, language);
Map<String,String> labelMap = new HashMap<>();
while (queryLabel.next()){
String fieldname = queryLabel.getString("FIELDNAME");
String labelname = queryLabel.getString("LABELNAME");
labelMap.put(fieldname,labelname);
}
Map<String,Map<String,String>> selectItemMap = mapSelectItem(billid); // 选择框选项
Map<String,String> liulanMap = mapLiuLan(billid); // 浏览按钮
Map<String,String> commonLiuLanMap = mapCommonLiuLan(billid); // 浏览按钮
Set<String> checkSet = getCheckFieldName(billid); // check字段
Set<String> fileFieldSet = getFileFieldSet(billid); // 文件字段
bb.writeLog("》》》 select item >> "+ JSON.toJSONString(selectItemMap));
bb.writeLog("》》》 liulanMap >> "+ JSON.toJSONString(liulanMap));
for (String tempname : filedNameList) {
String labelName = labelMap.getOrDefault(tempname,tempname);
String value = paramMap.getOrDefault(tempname, "");
if (!"".equals(value)){
bb.writeLog(">>> for tempname >> "+tempname);
if (selectItemMap.containsKey(tempname)){ // 选择框
bb.writeLog("select item >> "+tempname+" >> "+value);
Map<String,String> selectItem = selectItemMap.get(tempname);
String [] valueArray = value.split(",");
List<String> valueList = new ArrayList<>();
for (String tempValue : valueArray){
String tempValueName = selectItem.getOrDefault(tempValue,tempValue);
valueList.add(tempValueName);
}
bb.writeLog("> select item >> "+tempname+" >> "+valueList);
value = String.join(", ",valueList);
} else if (checkSet.contains(tempname)){ // check字段
bb.writeLog("checkSet >> "+tempname+" >> "+value);
value= "1".equals(value) ? "Yes" : "No";
} else if (fileFieldSet.contains(tempname)){ // 附件字段
bb.writeLog("fileFieldSet >> "+tempname+" >> "+value);
List<String> fileList = new ArrayList<>();
RecordSet queryTemp = new RecordSet();
queryTemp.executeQuery("select IMAGEFILENAME from docimagefile where docid in ("+value+")");
while (queryTemp.next()){
String tempValueName = queryTemp.getString("IMAGEFILENAME");
fileList.add(tempValueName);
}
value = String.join(", ",fileList);
} else if (liulanMap.containsKey(tempname)){ //自定义浏览框
String searchById = liulanMap.get(tempname);
bb.writeLog("liulanMap >> "+tempname+" >> "+searchById);
String [] valueArray = value.split(",");
List<String> valueList = new ArrayList<>();
RecordSet queryTemp = new RecordSet();
for (String tempValue : valueArray){
bb.writeLog("liulanMap >> "+tempname+" >> "+searchById+" >> "+tempValue);
queryTemp.executeQuery(searchById,tempValue);
if (queryTemp.next()){
String tempValueName = queryTemp.getString(1);
bb.writeLog("query reuslt ");
valueList.add(tempValueName);
}else {
bb.writeLog("query reuslt null");
}
}
value = String.join(", ",valueList);
} else if (commonLiuLanMap.containsKey(tempname)){ // 公共浏览框类型
String fieldType = commonLiuLanMap.get(tempname);
bb.writeLog("commonLiuLanMap >> "+tempname+" >> "+fieldType + " >>value= "+value);
RecordSet queryTemp = new RecordSet();
switch (fieldType){
case "1": // 单选人力
queryTemp.executeQuery("select LASTNAME from hrmresource h where id =?",value);
if (queryTemp.next()){
value = Util.null2String(queryTemp.getString("LASTNAME"));
}
break;
case "17": // 多选人力
queryTemp.executeQuery("select LASTNAME from hrmresource h where id in ("+value+")");
List<String> valueList = new ArrayList<>();
while (queryTemp.next()){
valueList.add(Util.null2String(queryTemp.getString("LASTNAME")));
}
bb.writeLog("user list >> "+ JSON.toJSONString(valueList));
value = String.join(", ",valueList);
break;
case "4": // 单选部门
queryTemp.executeQuery("select DEPARTMENTNAME from hrmdepartment where id=?",value);
if (queryTemp.next()){
value = Util.null2String(queryTemp.getString("DEPARTMENTNAME"));
}
break;
case "57": // 多选部门
queryTemp.executeQuery("select DEPARTMENTNAME from hrmdepartment where id in ("+value+")");
List<String> valueList2 = new ArrayList<>();
while (queryTemp.next()){
valueList2.add(Util.null2String(queryTemp.getString("DEPARTMENTNAME")));
}
bb.writeLog("dep lis is >> "+ JSON.toJSONString(valueList2));
value = String.join(", ",valueList2);
break;
case "16": // 单选流程
queryTemp.executeQuery("select REQUESTNAME from workflow_requestbase where REQUESTID =?",value);
if (queryTemp.next()){
value = Util.null2String(queryTemp.getString("REQUESTNAME"));
}
break;
case "152": // 多选流程
queryTemp.executeQuery("select REQUESTNAME from workflow_requestbase where REQUESTID in ("+value+")");
List<String> valueList3 = new ArrayList<>();
while (queryTemp.next()){
valueList3.add(Util.null2String(queryTemp.getString("REQUESTNAME")));
}
bb.writeLog("request list >> "+ JSON.toJSONString(valueList3));
value = String.join(", ",valueList3);
break;
}
} else {
value = value.replace("&nbsp;", " ");
value = value.replace("<br>", " ");
}
}
cardJsonArray.add(
new JSONObject().fluentPut("name", labelName).fluentPut("value", value)
);
}
}
return cardJsonArray;
}
// 选择框选项数据
private Map<String,Map<String,String>> mapSelectItem(Integer billid){
RecordSet query = new RecordSet();
query.executeQuery("select a.FIELDNAME , b.SELECTVALUE , b.SELECTNAME from workflow_billfield a left join workflow_selectitem b on a.id=b.FIELDID where a.billid=? and a.fieldhtmltype=5 order by a.id",billid);
Map<String,Map<String,String>> map = new HashMap<>();
while (query.next()){
String fieldname = query.getString("FIELDNAME");
String selectvalue = query.getString("SELECTVALUE");
String selectname = query.getString("SELECTNAME");
if (map.containsKey(fieldname)){
map.get(fieldname).put(selectvalue,selectname);
}else{
Map<String,String> tempMap = new HashMap<>();
tempMap.put(selectvalue,selectname);
map.put(fieldname,tempMap);
}
}
return map;
}
// 勾选框字段名
private Set<String> getCheckFieldName(Integer billid){
Set<String> set = new HashSet<>();
RecordSet query = new RecordSet();
query.executeQuery("select FIELDNAME from workflow_billfield where BILLID =? and FIELDHTMLTYPE=4",billid);
while (query.next()){
set.add(query.getString("FIELDNAME"));
}
return set;
}
// 附件选择
private Set<String> getFileFieldSet(Integer billid){
Set<String> set = new HashSet<>();
RecordSet query = new RecordSet();
query.executeQuery("select FIELDNAME from workflow_billfield where BILLID =? and FIELDHTMLTYPE=6",billid);
while (query.next()){
set.add(query.getString("FIELDNAME"));
}
return set;
}
// 浏览按钮
private Map<String,String> mapLiuLan(Integer billid){
RecordSet query = new RecordSet();
Map<String,String> map = new HashMap<>();
query.executeQuery("select FIELDNAME, FIELDDBTYPE from workflow_billfield where BILLID =? and FIELDDBTYPE like 'browser.%'",billid);
while (query.next()){
String fieldname = query.getString("FIELDNAME");
String fielddbtpye = query.getString("FIELDDBTYPE");
String showname = fielddbtpye.substring(8);
RecordSet query2 = new RecordSet();
query2.executeQuery("select searchById from mode_browser where showname =?",showname);
if (query2.next()){
String searchById = query2.getString("searchById");
map.put(fieldname,searchById);
}
}
return map;
}
// 公共浏览框类型
private Map<String,String> mapCommonLiuLan(Integer billid){
Map<String,String> map = new HashMap<>();
RecordSet query = new RecordSet();
query.executeQuery("select FIELDNAME, type from workflow_billfield wb where FIELDHTMLTYPE=3 and BILLID = ?",billid);
while (query.next()){
String fieldname = query.getString("FIELDNAME");
String fielddbtpye = query.getString("type");
map.put(fieldname,fielddbtpye);
}
return map;
}
}

@ -0,0 +1,123 @@
package weaver.interfaces.dito.delete;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
public class RequestDeleteForwardSendPortalUtil {
public void requestDeleteByForward(List<Map<String,String>> list,String loginid,String notes){
BaseBean bb = new BaseBean();
for(int i=0;i<list.size();i++){
Map<String,String> dataMap = list.get(i);
String requestid = Util.null2String(dataMap.get("lcid"));
String userid = Util.null2String(dataMap.get("userid"));
String nodeid = Util.null2String(dataMap.get("nodeid"));
String nodename = Util.null2String(dataMap.get("nodename"));
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
String creater = Util.null2String(dataMap.get("creater"));
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(requestid)){
requestDeleteByUserId(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes,creater);
}
}
}
/***
*
* @param requestid
* @param userid
*/
private void requestDeleteByUserId(String requestid,String userid,String nodeid,String loginid,String workflowname,String requestname,String nodename,String notes,String createrLoginId){
BaseBean bb = new BaseBean();
bb.writeLog("monitorFinishedWorkflowForwardByUserId-requestid:"+requestid);
String zhjkbs = "weaver.interfaces.dito.delete.RequestDeleteForwardSendPortalUtil.requestDeleteByUserId" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
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 mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String actionType = "3" ;
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
try {
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(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",nodeid);
requestObject.put("nodeName",nodename);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode", "weaver"+requestid+"_zf_"+userid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("monitorFinishedWorkflowForwardByUserId-msgdata:"+msgdata);
if(StringUtils.isNotEmpty(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,193 @@
package weaver.interfaces.dito.delete;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class RequestDeleteQueryPortalUtil {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
/**
*
* @param requestid
*/
public List<Map<String,String>> queryRequestReamrk89ByDelete(String requestid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestReamrk8ByDelete-requestid:"+requestid);
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
try{
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark in (8,9)\n" +
" and t.requestid in("+requestid +") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowCopyToByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
bb.writeLog("queryWorkflowCopyToByRequestid-list:"+list.size());
}
}catch (Exception e){
}
return list;
}
public List<Map<String,String>> queryRequestForwardByDelete(String requestid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestForwardByDelete-requestid:"+requestid);
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
try{
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark = 1 \n" +
" and t.requestid in("+requestid +") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowForwardByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
}
}catch (Exception e){
}
return list;
}
public List<Map<String,String>> queryRequestAtByDelete(String requestid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestAtByDelete-requestid:"+requestid);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
try{
if (StringUtils.isNotBlank(requestid)) {
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark in (18) \n" +
" and t.requestid in("+requestid +") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowAtByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
}
}catch (Exception e){
}
return list;
}
public List<Map<String,String>> queryRequestDataByDelete(String requestids){
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestDataByDelete-requestid:"+requestids);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
try{
if (StringUtils.isNotBlank(requestids)) {
String[] requestid = requestids.split(",");
for(int i=0;i<requestid.length;i++){
bb.writeLog("queryRequestDataByDelete-requestid-i:"+requestid[i]);
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid[i]);
list.add(baseMap);
}
}
}catch (Exception e){
}
bb.writeLog("queryRequestDataByDelete-list:"+list.size());
return list;
}
}

@ -0,0 +1,122 @@
package weaver.interfaces.dito.delete;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
public class RequestDeleteRemark89SendPortalUtil {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
public void requestDeleteByRemark89(List<Map<String,String>> list,String loginid,String notes){
BaseBean bb = new BaseBean();
bb.writeLog("requestDeleteRemark89-loginid:"+loginid);
for(int i=0;i<list.size();i++){
Map<String,String> dataMap = list.get(i);
String requestid = Util.null2String(dataMap.get("lcid"));
String userid = Util.null2String(dataMap.get("userid"));
String nodeid = Util.null2String(dataMap.get("nodeid"));
String nodename = Util.null2String(dataMap.get("nodename"));
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
String creater = Util.null2String(dataMap.get("creater"));
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(requestid)){
requestDeleteRemark89ByUserid(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes,creater);
}
}
}
/***
*
* @param requestid
* @param userid
* @param loginid
* @param notes
*/
private void requestDeleteRemark89ByUserid(String requestid,String userid,String nodeid,String loginid,String workflowname,String requestname,String nodename,String notes,String createrLoginId){
BaseBean bb = new BaseBean();
String zhjkbs = "weaver.interfaces.dito.delete.RequestDeleteSendPortalUtil.requestDeleteRemark89ByUserid" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String bpm_app_workflowurl = Constants.bpm_app_workflowurl;
String bpm_app_requesturl = Constants.bpm_app_requesturl;
String portal_todourl = Constants.portal_todourl;
String username = Constants.username;
String passwd = Constants.passwd;
String center = Constants.center;
String bpm_workflowurl = Constants.bpm_workflowurl;
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String actionType = "3" ;
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
try {
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");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",nodeid);
requestObject.put("nodeName",nodename);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode", requestid+"_cs_"+userid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
bb.writeLog("monitorFinishedWorkflowCopyToByUserid-requestObject:"+requestObject.toJSONString());
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("monitorFinishedWorkflowCopyToByUserid-msgdata:"+msgdata);
if(StringUtils.isNotEmpty(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,129 @@
package weaver.interfaces.dito.delete;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
public class RequestDeleteRemarkAtSendPortalUtil {
public void requestDeleteByAt(List<Map<String,String>> list,String loginid,String notes){
BaseBean bb = new BaseBean();
bb.writeLog("requestDeleteByAt-loginid:" + loginid);
for(int i=0;i<list.size();i++){
Map<String,String> dataMap = list.get(i);
String requestid = Util.null2String(dataMap.get("lcid"));
String userid = Util.null2String(dataMap.get("userid"));
String nodeid = Util.null2String(dataMap.get("nodeid"));
String nodename = Util.null2String(dataMap.get("nodename"));
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
String creater = Util.null2String(dataMap.get("creater"));
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(requestid)){
requestDeleteByAt2UserId(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes,creater);
}
}
}
/***
* @
* @param requestid
* @param userid
*/
private void requestDeleteByAt2UserId(String requestid,String userid,String nodeid,String loginid,String workflowname,String requestname,String nodename,String notes,String createrLoginId){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
bb.writeLog("monitorFinishedWorkflowAtByUserId-requestid:"+requestid);
// String notes = "流程监控删除后,删除未读的@数据";
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.delete.RequestDeleteRemarkAtSendPortalUtil.requestDeleteByAt2UserId" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String actionType = "3";
String terminal = "1" ;
String taskType = "1";
try {
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");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",nodeid);
requestObject.put("nodeName",nodename);
requestObject.put("ticketType",workflowname);
requestObject.put("center", center);
requestObject.put("taskType", taskType);
requestObject.put("actionType", actionType);
requestObject.put("createDate", processTime);
requestObject.put("messageTitle",requestname);
requestObject.put("terminal", terminal);
requestObject.put("urlPc", urlPc);
requestObject.put("urlDing", urlDing);
requestObject.put("urlApp",urlApp);
requestObject.put("taskCode", "weaver"+requestid+"_at_"+userid);
String auth = username + ":" + passwd;
bb.writeLog("monitorFinishedWorkflowAtByUserId--requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
bb.writeLog("monitorFinishedWorkflowAtByUserId-msgdata:" + msgdata);
if (!"".equals(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,userid,notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid,notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,196 @@
package weaver.interfaces.dito.delete;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class RequestDeleteSendPortalUtil {
/***
*
* @param user
* @param copyList
* @param forwardList
* @param atList
*/
public void completeRemark89ForwardAtByDelete(User user, List<Map<String,String>> copyList, List<Map<String,String>> forwardList, List<Map<String,String>> atList,String note){
BaseBean bb = new BaseBean();
String loginid = user.getLoginid()+"" ;
try{
note += "(抄送不需提交、抄送需要提交:"+copyList.size()+",转发:"+forwardList.size()+",@:"+atList.size()+")";
RequestDeleteRemark89SendPortalUtil requestDeleteRemark89SendPortalUtil = new RequestDeleteRemark89SendPortalUtil();
bb.writeLog("copyList:"+copyList.size());
if(copyList.size() >0){
String notes = note +"删除未读的抄送数据";
requestDeleteRemark89SendPortalUtil.requestDeleteByRemark89(copyList,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
RequestDeleteForwardSendPortalUtil requestDeleteForwardSendPortalUtil = new RequestDeleteForwardSendPortalUtil();
bb.writeLog("forwardList:"+forwardList.size());
if(forwardList.size() >0){
String notes = note +"删除未读的转发数据";
requestDeleteForwardSendPortalUtil.requestDeleteByForward(forwardList,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("operate3typeByList:"+e);
}
try{
RequestDeleteRemarkAtSendPortalUtil requestDeleteRemarkAtSendPortalUtil = new RequestDeleteRemarkAtSendPortalUtil();
bb.writeLog("atList:"+atList.size());
if(atList.size() >0){
String notes = note + "删除未读的@数据";
requestDeleteRemarkAtSendPortalUtil.requestDeleteByAt(atList,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
}
/***
*
* @param requestList
* @param userid
*/
public void monitorDelete(String userid,List<Map<String,String>> requestList){
BaseBean bb = new BaseBean();
bb.writeLog("MonitorRequestDeleteSendPortalUtil--monitorDelete");
for (int i = 0; i < requestList.size(); i++) {
Map<String,String> baseMap = requestList.get(i);
monitorDelete4Requestid(baseMap,userid);
}
}
/***
*
* @param baseMap
* @param userid
*/
public void monitorDelete4Requestid(Map<String,String> baseMap,String userid){
String notes = "流程监控删除后,删除待办数据";
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.monitor.delete.MonitorRequestDeleteSendPortalUtil.monitorDelete4Requestid" ;
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
BaseBean bb = new BaseBean();
String terminal = "1" ;
String taskType = "0";
String actionType = "3" ;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
try {
String requestid = baseMap.get("requestid");
bb.writeLog("monitorDelete4Requestid:"+requestid);
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
bb.writeLog("monitorDelete4Requestid---requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("monitorDelete4Requestid---msgdata:"+msgdata);
Map<String,Object> map = new HashMap<>();
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.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/***
*
* @param messageTitle
* @return
*/
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
}

@ -0,0 +1,791 @@
package weaver.interfaces.dito.form;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SendPortalFormLoadUtil {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
public Map<String, Integer> queryWorkflowRemark9ByLoadForm(String requestid,String current_userid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("LoadForm-requestid:"+requestid);
Map<String, Integer> remark9Map = new HashMap<String, Integer>();
try{
if(StringUtils.isNotBlank(requestid)){
String[] lcids = requestid.split(",");
for(int i=0;i<lcids.length;i++){
int count = 0;
String lcid = lcids[i];
if(StringUtils.isNotBlank(lcid)){
String sql =" select t.id,t.userid,t.nodeid,t.requestid,t.preisremark\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.isremark in (9) \n" +
" and t.preisremark in (9)\n" +
" and t.requestid ="+lcid+" and t.userid ="+current_userid+"" ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowRemark8AtByLoadForm-sql:"+sql);
while (rs.next()){
count++;
}
remark9Map.put(lcid,count);
}
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("queryWorkflowRemark8AtByLoadForm-e:"+e);
}
return remark9Map;
}
/**
* @
*
* @param requestid
*/
public List<Map<String,String>> queryWorkflowRemarkAtByLoadForm(String requestid,String current_userid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryWorkflowRemarkAtByLoadForm-requestid:"+requestid);
List<Map<String,String>> atList = new ArrayList<Map<String,String>>();
try{
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.id,t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,t.preisremark\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.isremark in (8) \n" +
" and t.preisremark in (18)\n" +
" and t.requestid in("+requestid +") and t.userid in("+current_userid+")" ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowRemark8AtByLoadForm-sql:"+sql);
while (rs.next()){
String currentid = Util.null2String(rs.getString("id"));
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("currentid",currentid);
atList.add(map);
}
bb.writeLog("queryWorkflowRemark8AtByLoadForm-atList:"+atList.size());
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("queryWorkflowRemark8AtByLoadForm-e:"+e);
}
return atList;
}
/***
* @@
*/
// public void completeReamrk8AtByLoadForm(User user, String requestid){
//
// BaseBean bb = new BaseBean();
// try{
// String userid = user.getUID()+"";
// bb.writeLog("completeReamrk8AtByLoadForm--remark8List777:"+remark8List.size());
// if(remark8List.size() >0){
// String notes = "打开流程表单详情页面,完成抄送不需提交的数据";
// finishedWorkflowCopyToByRequestid(remark8List,userid,notes);
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("completeReamrk8AtByLoadForm-e:"+e);
// }
//
// try{
// bb.writeLog("completeReamrk8AtByLoadForm--atList777:"+atList.size());
// if(atList.size() >0){
// String notes = "打开流程表单详情页面,完成@的数据门户调用";
// String userid = user.getUID()+"";
// finishedWorkflowAtByRequestid(atList,userid,notes);
//
// String loginid = user.getLoginid()+"";
// completePortalAtDoneByRequestid(atList,loginid);
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("completeReamrk8AtByLoadForm-e:"+e);
// }
// }
// public void finishedWorkflowCopyToByRequestid(List<Map<String,String>> list,String currentuserid,String notes){
// BaseBean bb = new BaseBean();
// bb.writeLog("finishedWorkflowCopyToByRequestid-currentuserid:"+currentuserid);
// for(int i=0;i<list.size();i++){
// Map<String,String> dataMap = list.get(i);
// String requestid = Util.null2String(dataMap.get("lcid"));
// String userid = Util.null2String(dataMap.get("userid"));
// String nodeid = Util.null2String(dataMap.get("nodeid"));
// String nodename = Util.null2String(dataMap.get("nodename"));
// String requestname = Util.null2String(dataMap.get("requestname"));
// String workflowname = Util.null2String(dataMap.get("workflowname"));
//
// bb.writeLog("finishedWorkflowCopyToByRequestid-userid:"+userid);
// bb.writeLog("finishedWorkflowCopyToByRequestid-nodeid:"+nodeid);
// bb.writeLog("finishedWorkflowCopyToByRequestid-requestid:"+requestid);
// if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
// finishedWorkflowCopyToByUserid(requestid,userid,nodeid,currentuserid,workflowname,requestname,nodename,notes);
// }
// }
// }
/***
*
* @return
*/
// public void completePortalAtDoneByRequestid(List<Map<String,String>> atList,String loginid){
// BaseBean bb = new BaseBean();
// try{
// bb.writeLog("completePortalAtDoneByRequestid-atList:"+atList.size());
// if(atList.size() >0){
// String notes = "打开流程表单详情页面,@的数据生成已办";
// for(int i=0;i<atList.size();i++){
// Map<String,String> dataMap = atList.get(i);
// String requestid = Util.null2String(dataMap.get("lcid"));
// String userid = Util.null2String(dataMap.get("userid"));
// String nodeid = Util.null2String(dataMap.get("nodeid"));
// String nodename = Util.null2String(dataMap.get("nodename"));
// String requestname = Util.null2String(dataMap.get("requestname"));
// String workflowname = Util.null2String(dataMap.get("workflowname"));
//
// bb.writeLog("completePortalAtDoneByRequestid-userid:"+userid);
// bb.writeLog("completePortalAtDoneByRequestid-nodeid:"+nodeid);
// bb.writeLog("completePortalAtDoneByRequestid-requestid:"+requestid);
// if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
// completePortalAtDoneData(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes);
// }
// }
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("completePortalAtDoneByRequestid-e:"+e);
// }
// }
// public void finishedWorkflowAtByRequestid(List<Map<String,String>> list,String loginid,String notes){
//
// BaseBean bb = new BaseBean();
// bb.writeLog("finishedWorkflowAtByRequestid-loginid:" + loginid);
// for(int i=0;i<list.size();i++){
//
// Map<String,String> dataMap = list.get(i);
// String requestid = Util.null2String(dataMap.get("lcid"));
// String userid = Util.null2String(dataMap.get("userid"));
// String nodeid = Util.null2String(dataMap.get("nodeid"));
// String nodename = Util.null2String(dataMap.get("nodename"));
// String requestname = Util.null2String(dataMap.get("requestname"));
// String workflowname = Util.null2String(dataMap.get("workflowname"));
//
// bb.writeLog("finishedWorkflowAtByRequestid-userid:"+userid);
// bb.writeLog("finishedWorkflowAtByRequestid-nodeid:"+nodeid);
// bb.writeLog("finishedWorkflowAtByRequestid-requestid:"+requestid);
// if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
// finishedWorkflowAtByUserId(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes);
// }
// }
// }
// public void completeReamrk8ByLoadForm(User user, String requestid){
//
// BaseBean bb = new BaseBean();
//
// try{
//
//
//
//
// String userid = user.getUID()+"";
// finishedWorkflowAtByRequestid(atList,userid,notes);
//
// String loginid = user.getLoginid()+"";
// completePortalAtDoneByRequestid(atList,loginid);
//
//
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("completeReamrk8AtByLoadForm-e:"+e);
// }
//
// }
// public void completeReamrkAtByLoadForm(String requestid,String userid){
//
// BaseBean bb = new BaseBean();
// try{
// bb.writeLog("completeReamrkAtByLoadForm--requestid:"+requestid);
// if(remark8List.size() >0){
// String notes = "打开流程表单详情页面,完成抄送不需提交的数据";
// finishedWorkflowCopyToByRequestid(remark8List,userid,notes);
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("completeReamrk8AtByLoadForm-e:"+e);
// }
//
// try{
// bb.writeLog("completeReamrk8AtByLoadForm--atList777:"+atList.size());
// if(atList.size() >0){
// String notes = "打开流程表单详情页面,完成@的数据门户调用";
// String userid = user.getUID()+"";
// finishedWorkflowAtByRequestid(atList,userid,notes);
//
// String loginid = user.getLoginid()+"";
// completePortalAtDoneByRequestid(atList,loginid);
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("completeReamrk8AtByLoadForm-e:"+e);
// }
//
// }
// public void queryWorkflowRemark8ByLoadForm(String requestid,String current_userid){
// RecordSet rs = new RecordSet();
// BaseBean bb = new BaseBean();
// bb.writeLog("queryWorkflowRemark8AtByLoadForm-requestid:"+requestid);
// try{
// Map<String,String> map = null ;
// if(StringUtils.isNotBlank(requestid)){
// String sql =" select t.id,t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,t.preisremark\n" +
// " from workflow_currentoperator t\n" +
// " inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
// " left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
// " left join workflow_base t3 on t3.id = t1.workflowid\n" +
// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
// " and t.isremark in (8,9) \n" +
// " and t.preisremark in (8,9,18)\n" +
// " and t.requestid in("+requestid +") and t.userid in("+current_userid+")" ;
//
// rs.executeQuery(sql);
// bb.writeLog("queryWorkflowRemark8AtByLoadForm-sql:"+sql);
//
// while (rs.next()){
// String currentid = Util.null2String(rs.getString("id"));
// String nodeid = Util.null2String(rs.getString("nodeid"));
// String userid = Util.null2String(rs.getString("userid"));
// String nodename = Util.null2String(rs.getString("nodename"));
// String workflowname = Util.null2String(rs.getString("workflowname")) ;
// String requestname = Util.null2String(rs.getString("requestname")) ;
// String lcid = Util.null2String(rs.getString("requestid")) ;
// String preisremark = Util.null2String(rs.getString("preisremark")) ;
//
// map = new HashMap<String, String>();
// map.put("requestid",requestid);
// map.put("userid",userid);
// map.put("nodeid",nodeid);
// map.put("nodename",nodename);
// map.put("workflowname",workflowname);
// map.put("requestname",requestname);
// map.put("lcid",lcid);
// map.put("currentid",currentid);
//
// if("8".equals(preisremark)){
// remark8List.add(map);
// }else if("18".equals(preisremark)){
// atList.add(map);
// }else if("9".equals(preisremark)){
// remark9List.add(map);
// }
// }
// bb.writeLog("queryWorkflowRemark8AtByLoadForm-remark8List:"+remark8List.size());
// bb.writeLog("queryWorkflowRemark8AtByLoadForm-atList:"+atList.size());
// bb.writeLog("queryWorkflowRemark8AtByLoadForm-remark9List:"+remark9List.size());
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("queryWorkflowRemark8AtByLoadForm-e:"+e);
// }
// }
/***
*
* @param requestid
* @param current_userid
* @param remark9Map
*/
public void completeRequestByLoadForm(String requestid,String current_userid,Map<String,Integer> remark9Map,String logind,List<Map<String,String>> atList){
BaseBean bb = new BaseBean();
try{
if(StringUtils.isNotBlank(requestid)){
String[] lcids = requestid.split(",");
for(int i=0;i<lcids.length;i++){
String lcid = lcids[i];
if(StringUtils.isNotBlank(lcid)){
int count = remark9Map.get(lcid);
bb.writeLog("LoadForm-count:"+count);
if(count > 0){
completeRequestAtByLoadForm(lcid,current_userid,logind,atList);
}else{
completeReamrk8AtByLoadForm(lcid,current_userid);
completeRequestAtByLoadForm(lcid,current_userid,logind,atList);
}
}
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("queryWorkflowRemark8AtByLoadForm-e:"+e);
}
}
public void completeReamrk8AtByLoadForm(String lcid,String current_userid){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
bb.writeLog("completeReamrk8AtByLoadForm");
try{
int count0 = 0;
int count1 = 0;
String sql =" select t.id,t.userid,t.nodeid,t.requestid,t.preisremark,t.viewtype \n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark in (8)" +
" and t.requestid ="+lcid+" and t.userid ="+current_userid+"" ;
rs.executeQuery(sql);
bb.writeLog("LoadForm-8-sql:"+sql);
while (rs.next()){
count0++;
String viewtype = Util.null2String(rs.getString("viewtype"));
bb.writeLog("LoadForm-8-viewtype:"+viewtype);
// if("0".equals(viewtype)){
// count1++;
// }
}
if(count0 > 0){
String notes = "打开流程表单详情页面,完成抄送不需提交的数据";
String code = finishedWorkflowReamrk8ByUserId(lcid,current_userid,notes);
if("0".equals(code)){
updateCurrentoperatorRemark(lcid,current_userid,"8");
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("LoadForm-e:"+e);
}
}
/***
*
* @param lcid
* @param current_userid
*/
public void completeRequestAtByLoadForm(String lcid,String current_userid,String loginid,List<Map<String,String>> atList){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
bb.writeLog("completeRequestAtByLoadForm");
try{
int count0 = 0;
int count1 = 0;
String sql =" select t.id,t.userid,t.nodeid,t.requestid,t.preisremark,t.viewtype \n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark in (18) " +
" and t.requestid ="+lcid+" and t.userid ="+current_userid+"" ;
rs.executeQuery(sql);
bb.writeLog("LoadForm-at-sql:"+sql);
while (rs.next()){
count0++;
String viewtype = Util.null2String(rs.getString("viewtype"));
bb.writeLog("LoadForm-at-viewtype:"+viewtype);
// if("0".equals(viewtype)){
// count1++;
// }
}
if(count0 >0){
String notes = "打开流程表单详情页面,完成@的数据门户调用";
String code = finishedWorkflowAtByUserId(lcid,current_userid,notes);
if("0".equals(code)){
notes = "打开流程表单详情页面,完成@的已办数据门户调用";
if(atList.size()>0){
completePortalAtDoneData(lcid,current_userid,notes,loginid);
updateCurrentoperatorRemark(lcid,current_userid,"18");
}
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("LoadForm-e:"+e);
}
}
/***
*
* @param requestid
* @param userid
* @return
*/
private String finishedWorkflowAtByUserId(String requestid,String userid,String notes){
BaseBean bb = new BaseBean();
bb.writeLog("finishedWorkflowAtByUserId-requestid:"+requestid);
String resultCode = "";
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.form.SendPortalFormLoadUtil.finishedWorkflowAtByUserId" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String actionType = "3";
String terminal = "1" ;
String taskType = "1";
try {
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");
}
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center", center);
requestObject.put("taskType", taskType);
requestObject.put("actionType", actionType);
requestObject.put("createDate", processTime);
requestObject.put("messageTitle",requestname);
requestObject.put("terminal", terminal);
requestObject.put("urlPc", urlPc);
requestObject.put("urlDing", urlDing);
requestObject.put("urlApp",urlApp);
requestObject.put("taskCode", "weaver"+requestid+"_at_"+userid);
String auth = username + ":" + passwd;
bb.writeLog("finishedWorkflowAtByUserId--requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
bb.writeLog("finishedWorkflowAtByUserId-msgdata:" + msgdata);
if (!"".equals(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
if (msgObject.containsKey("resultCode")) {
resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,userid,notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid,notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return resultCode;
}
/**
*
* @param requestid
* @param userid
* @param notes
* @return
*/
public String completePortalAtDoneData(String requestid,String userid,String notes,String loginid){
String zhjkbs = "weaver.interfaces.dito.form.SendPortalFormLoadUtil.completePortalAtDoneData";
String resultCode = "" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
String username = PropBean.getUfPropValue("username");
String passwd = PropBean.getUfPropValue("passwd");
String center = PropBean.getUfPropValue("center");
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String portal_doneurl = PropBean.getUfPropValue("portal_doneurl");
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
BaseBean bb = new BaseBean();
bb.writeLog("completePortalAtDoneData");
String actionType = "0" ;
try {
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
if(org.apache.commons.lang.StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
String newNodeId = requestid+userid+"_"+System.currentTimeMillis();
bb.writeLog("completePortalAtDoneData--createrLoginId:"+createrLoginId);
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("nodeId",newNodeId);
requestObject.put("ticketType",workflowname);
requestObject.put("center", center);
requestObject.put("taskCode", "weaver" + requestid);
requestObject.put("processStaff", loginid);
requestObject.put("processTime", processTime);
requestObject.put("isRecall", "1");
requestObject.put("actionType", actionType);
requestObject.put("urlPC", urlPc);
requestObject.put("urlApp", urlApp);
requestObject.put("urlDing", urlDing);
String auth = username + ":" + passwd;
bb.writeLog("completePortalAtDoneData done requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth);
bb.writeLog("completePortalAtDoneData done msgdata:" + msgdata);
if (org.apache.commons.lang.StringUtils.isNotEmpty(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
bb.writeLog("completePortalAtDoneData--msgObject:" + msgObject.toJSONString());
if (msgObject.containsKey("resultCode")) {
resultCode = msgObject.getString("resultCode");
if (!"0".equals(resultCode)) {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, newNodeId, userid+ "", requestObject.toJSONString(), resultCode, resultmsg, zhjkbs,"",notes);
}else{
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, newNodeId, userid + "", requestObject.toJSONString(), resultCode, "", zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog(e);
}
return resultCode;
}
private String finishedWorkflowReamrk8ByUserId(String requestid,String userid,String notes){
BaseBean bb = new BaseBean();
bb.writeLog("finishedWorkflowCopyToByUserid-requestid:"+requestid);
String zhjkbs = "weaver.interfaces.dito.form.SendPortalFormLoadUtil.finishedWorkflowCopyToByUserid" ;
String resultCode = "" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String bpm_app_workflowurl = Constants.bpm_app_workflowurl;
String bpm_app_requesturl = Constants.bpm_app_requesturl;
String portal_todourl = Constants.portal_todourl;
String username = Constants.username;
String passwd = Constants.passwd;
String center = Constants.center;
String bpm_workflowurl = Constants.bpm_workflowurl;
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String actionType = "3" ;
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
try {
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");
}
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode", requestid+"_cs_"+userid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
bb.writeLog("finishedWorkflowCopyToByUserid-requestObject:"+requestObject.toJSONString());
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("monitorFinishedWorkflowCopyToByUserid-msgdata:"+msgdata);
if(StringUtils.isNotEmpty(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return resultCode;
}
public void updateCurrentoperatorRemark(String requestid,String currentUserid,String preisremark){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
try{
String viewDate = DateUtil.getCurrentTime("yyyy-MM-dd");
String viewTime = DateUtil.getCurrentTime("HH:mm:ss");
bb.writeLog("updateCurrentoperatorRemark-requestid:"+requestid);
if(StringUtils.isNotBlank(requestid)){
if("8".equals(preisremark)){
String sql = " update workflow_currentoperator set isremark=2,viewtype=-2,viewdate=(case when viewdate is not null then viewdate else '"+viewDate+"' end),viewtime=(case when viewtime is not null then viewtime else '"+viewTime+"' end) where requestid = "+requestid +" and preisremark in ("+preisremark+") and userid="+currentUserid;
boolean isTrue = rs.executeUpdate(sql);
bb.writeLog("updateCurrentoperatorRemark-sql:"+sql +" isTrue:"+isTrue);
}else if("18".equals(preisremark)){
String sql = " update workflow_currentoperator set isremark=2,viewtype=-2,viewdate=(case when viewdate is not null then viewdate else '"+viewDate+"' end),viewtime=(case when viewtime is not null then viewtime else '"+viewTime+"' end),operatedate=(case when operatedate is not null then operatedate else '"+viewDate+"' end),operatetime=(case when operatetime is not null then operatetime else '"+viewTime+"' end) where requestid = "+requestid +" and preisremark in ("+preisremark+") and userid="+currentUserid;
boolean isTrue = rs.executeUpdate(sql);
bb.writeLog("updateCurrentoperatorRemark-sql:"+sql +" isTrue:"+isTrue);
}
}
}catch (Exception e){
bb.writeLog("updateCurrentoperatorRemark-e:"+e);
}
}
}

@ -0,0 +1,231 @@
package weaver.interfaces.dito.forword;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendMailUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SendPortalTransferUtil {
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
public void requestTransferSendPortal(String requestid, int currentnodeid, User user){
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendMailUtil sendMailUtil = new SendMailUtil();
BaseBean bb = new BaseBean();
bb.writeLog("======== SendPortalTransferUtil transferSendPortal ========================="+requestid);
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
String portal_todourl = PropBean.getUfPropValue("portal_todourl");
String username = PropBean.getUfPropValue("username");
String passwd = PropBean.getUfPropValue("passwd");
String center = PropBean.getUfPropValue("center");
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
RecordSet rs = new RecordSet();
try {
String zhjkbs = "weaver.interfaces.dito.forword.SendPortalTransferUtil.requestTransferSendPortal";
String actionType = "2";
String terminal = "1";
String taskType = "0";
String objectAction = "0";
String objectType = "0";
String workflowname = "";
String nodeId = "";
String nodeName = "";
JSONObject requestObject = new JSONObject();
String urlPc = "[newtab]"+ Constants.bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid ;
String urlApp = replace+bpm_app_requesturl+requestid ;
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
String msgdata = "";
String requestname = "";
String lastname = "";
String userids = "";
String loginid = "";
String emailArray = "";
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname,h2.loginid " +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid " +
" left join (select id,lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = " + requestid;
bb.writeLog("SendPortalForwardCmd transfer --sql:" + sql);
rs.executeQuery(sql);
if (rs.next()) {
requestname = Util.null2String(rs.getString("requestname"));
workflowname = Util.null2String(rs.getString("workflowname"));
nodeId = Util.null2String(rs.getString("nodeid") + user.getUID());
nodeName = Util.null2String(rs.getString("nodeName"));
lastname = Util.null2String(rs.getString("lastname"));
loginid = Util.null2String(rs.getString("loginid"));
}
JSONArray taskObjectList = new JSONArray();
requestObject.put("creator", loginid);
requestObject.put("center", center);
requestObject.put("title", requestname);
requestObject.put("taskCode", "weaver" + requestid);
requestObject.put("nodeId", currentnodeid);
requestObject.put("taskType", taskType);
requestObject.put("actionType", actionType);
requestObject.put("createDate", processTime);
requestObject.put("messageTitle", getShortMessageTitle(requestname));
requestObject.put("messageContent", requestname);
requestObject.put("terminal", terminal);
requestObject.put("urlPc", urlPc);
requestObject.put("urlApp", urlApp);
requestObject.put("urlDing", urlDing);
requestObject.put("nodeName", getNodeName(currentnodeid));
requestObject.put("ticketType", workflowname);
sql = " select t2.userid,h1.loginid,h1.email,c1." + cus_staff + " as staffid " +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= " + scopeid + " and c1.scope = '" + scope + "' " +
" left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5', '7','11'))\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = " + requestid;
bb.writeLog("SendPortalForwardCmd transfer --sql:" + sql);
rs.executeQuery(sql);
while (rs.next()) {
JSONObject taskObject = new JSONObject();
String usercode = Util.null2String(rs.getString("loginid"));
String staffid = Util.null2String(rs.getString("staffid"));
String userid1 = Util.null2String(rs.getString("userid"));
userids += StringUtils.isEmpty(userids) ? userid1 : "," + userid1;
String objectCode = usercode;
String operatorCode = usercode;
taskObject.put("objectAction", objectAction);
taskObject.put("objectType", objectType);
taskObject.put("objectCode", objectCode);
taskObject.put("objectId", staffid);
taskObject.put("operatorCode", operatorCode);
taskObjectList.add(taskObject);
String email = Util.null2String(rs.getString("email"));
bb.writeLog("SendPortalForwardCmd transfer email:" + email);
Matcher matcher = regex.matcher(email);
if (matcher.matches()) {
emailArray += StringUtils.isEmpty(emailArray) ? email : "," + email;
}
}
if (taskObjectList.size() > 0) {
requestObject.put("taskObjectList", taskObjectList);
} else {
requestObject.put("actionType", "3");
}
bb.writeLog("================ SendPortalForwardCmd transfer requestObject ============= "+ requestObject.toJSONString());
String auth = username + ":" + passwd;
msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
if (!"".equals(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
bb.writeLog("================ SendPortalForwardCmd transfer msgObject ============= "+ msgObject.toJSONString());
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
bb.writeLog("SendPortalForwardCmd transfer emailArray:" + emailArray);
if (StringUtils.isNotEmpty(emailArray)) {
Map<String, String> templateMap = getEmailTemplate(requestname, lastname, processTime);
String notificationSubject = templateMap.get("notificationSubject");
String notificationContent = templateMap.get("notificationContent");
sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(user.getUID()), requestObject.toJSONString(), resultCode, "",zhjkbs,userids);
} else {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(user.getUID()), requestObject.toJSONString(), resultCode, resultmsg ,zhjkbs,userids);
}
}
}
}catch (Exception e){
bb.writeLog(e);
e.printStackTrace();
}
}
public String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
/***
*
* @param requestname
* @param operator
* @param operatorTime
* @return
*/
public Map<String,String> getEmailTemplate(String requestname,String operator,String operatorTime){
Map<String,String> dataMap = new HashMap<String,String>();
String notificationSubject = "You have a new To-Read - <"+requestname+"> ";
String notificationContent = operator + " created this task on "+operatorTime+"\n" +
" Please handle it in time.";
dataMap.put("notificationSubject",notificationSubject);
dataMap.put("notificationContent",notificationContent);
return dataMap;
}
public String getNodeName(int nodeid){
RecordSet rs = new RecordSet();
String name = "";
rs.executeQuery(" select nodename from workflow_nodebase where id = ?",nodeid);
while (rs.next()){
name = Util.null2String(rs.getString("nodename"));
}
return name;
}
}

@ -0,0 +1,128 @@
package weaver.interfaces.dito.intervention;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
public class RequestInterventionForwardSendPortalUtil {
public void requestInterventionByForward(List<Map<String,String>> list,String loginid,String notes){
BaseBean bb = new BaseBean();
for(int i=0;i<list.size();i++){
Map<String,String> dataMap = list.get(i);
String requestid = Util.null2String(dataMap.get("lcid"));
String userid = Util.null2String(dataMap.get("userid"));
String nodeid = Util.null2String(dataMap.get("nodeid"));
String nodename = Util.null2String(dataMap.get("nodename"));
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
String creater = Util.null2String(dataMap.get("creater"));
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(requestid)){
requestInterventionByUserId(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes,creater);
}
}
}
/***
*
* @param requestid
* @param userid
*/
private void requestInterventionByUserId(String requestid,String userid,String nodeid,String loginid,String workflowname,String requestname,String nodename,String notes,String createrLoginId){
BaseBean bb = new BaseBean();
bb.writeLog("requestInterventionByUserId-requestid:"+requestid);
String zhjkbs = "weaver.interfaces.dito.intervention.RequestInterventionForwardSendPortalUtil.requestInterventionByUserId" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
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 mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String actionType = "3" ;
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
try {
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(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",nodeid);
requestObject.put("nodeName",nodename);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode", "weaver"+requestid+"_zf_"+userid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("requestInterventionByUserId-msgdata:"+msgdata);
if(StringUtils.isNotEmpty(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
}

@ -0,0 +1,157 @@
package weaver.interfaces.dito.intervention;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class RequestInterventionQueryUtil {
/***
*
*
*
* @param requestids
* @return
*/
public Map<String,String> queryRequestNodeIdByIntervention(String requestids){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
Map<String,String> dataMap = new HashMap<String,String>();
try{
String sql =" select requestid,currentnodeid from workflow_requestbase where requestid in("+requestids+") ";
bb.writeLog("queryRequestNodeIdByArchving-sql:"+sql);
rs.execute(sql);
while (rs.next()){
String requestid = Util.null2String(rs.getString("requestid"));
String currentnodeid = Util.null2String(rs.getString("currentnodeid"));
dataMap.put(requestid,currentnodeid);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("queryRequestRemarkByArchving-e:"+e);
}
return dataMap;
}
/**
*
*
* @param requestids
* @return
*/
public List<Map<String,String>> queryWorkflowRemark89ByRequestid(String requestids,Map<String,String> nodeMap){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
String[] requestArray = requestids.split(",");
for(int i = 0;i<requestArray.length;i++){
String requestid = requestArray[i];
String currentnodeid = nodeMap.get(requestid);
if(StringUtils.isNotBlank(requestid) && StringUtils.isNotBlank(currentnodeid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark in (8,9)\n" +
" and t.requestid in("+requestid +") and t.nodeid in("+currentnodeid+") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowCopyToByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
}
}
bb.writeLog("queryWorkflowCopyToByRequestid-list:"+list.size());
return list;
}
/***
*
*
*
* @param requestids
* @return
*/
public List<Map<String,String>> queryWorkflowForwardByRequestid(String requestids,Map<String,String> nodeMap){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
String[] requestArray = requestids.split(",");
for(int i = 0;i<requestArray.length;i++){
String requestid = requestArray[i];
String currentnodeid = nodeMap.get(requestid);
if(StringUtils.isNotBlank(requestid) && StringUtils.isNotBlank(currentnodeid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark = 1 \n" +
" and t.requestid in("+requestid +") and t.nodeid in("+currentnodeid+") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowForwardByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
bb.writeLog("queryWorkflowForwardByRequestid-list:"+list.size());
}
}
return list;
}
}

@ -0,0 +1,130 @@
package weaver.interfaces.dito.intervention;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
public class RequestInterventionRemark89SendPortalUtil {
public void requestInterventionByRemark89(List<Map<String,String>> list,String loginid,String notes){
BaseBean bb = new BaseBean();
bb.writeLog("requestInterventionByRemark89-loginid:"+loginid);
for(int i=0;i<list.size();i++){
Map<String,String> dataMap = list.get(i);
String requestid = Util.null2String(dataMap.get("lcid"));
String userid = Util.null2String(dataMap.get("userid"));
String nodeid = Util.null2String(dataMap.get("nodeid"));
String nodename = Util.null2String(dataMap.get("nodename"));
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
String creater = Util.null2String(dataMap.get("creater"));
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(requestid)){
requestInterventionRemark89ByUserid(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes,creater);
}
}
}
/***
*
* @param requestid
* @param userid
* @param loginid
* @param notes
*/
private void requestInterventionRemark89ByUserid(String requestid,String userid,String nodeid,String loginid,String workflowname,String requestname,String nodename,String notes,String createrLoginId){
BaseBean bb = new BaseBean();
String zhjkbs = "weaver.interfaces.dito.intervention.RequestInterventionRemark89SendPortalUtil.requestInterventionRemark89ByUserid" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String bpm_app_workflowurl = Constants.bpm_app_workflowurl;
String bpm_app_requesturl = Constants.bpm_app_requesturl;
String portal_todourl = Constants.portal_todourl;
String username = Constants.username;
String passwd = Constants.passwd;
String center = Constants.center;
String bpm_workflowurl = Constants.bpm_workflowurl;
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String actionType = "3" ;
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
try {
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");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",nodeid);
requestObject.put("nodeName",nodename);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode", requestid+"_cs_"+userid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
bb.writeLog("requestInterventionRemark89ByUserid-requestObject:"+requestObject.toJSONString());
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("requestInterventionRemark89ByUserid-msgdata:"+msgdata);
if(StringUtils.isNotEmpty(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
}

@ -0,0 +1,244 @@
package weaver.interfaces.dito.intervention;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
public class RequestInterventionSendPortalUtil {
RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
/***
* intervention
* @param requestid
* @param currentUserId
*/
public void monitorIntervention(String requestid,String currentUserId){
monitorInterventionByUserId(requestid,currentUserId);
}
/***
*
* @param requestid
* @param currentUserId
*/
public void monitorInterventionByUserId(String requestid,String currentUserId){
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.monitor.SendPortalMonitorUtil.monitorInterventionByUserId" ;
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("SendPortalMonitorUtil--monitorIntervention");
String terminal = "1" ;
String taskType = "0";
try {
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(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
bb.writeLog("monitorIntervention-urlDing", urlDing);
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
String currentnodetype = baseMap.get("currentnodetype");
if("3".equals(currentnodetype)){
String actionType = "3" ;
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
bb.writeLog("monitorIntervention---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,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,"");
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"");
}
}
}
}else{
String actionType = "2" ;
String nextNodeUserIds = "";
int count = requestBaseInfoUtil.getTodoCountByRequestid(requestid) ;
bb.writeLog("monitorIntervention--count:"+count);
if(count >0){
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
JSONArray taskObjectList = new JSONArray();
String sql = requestBaseInfoUtil.getTodoSql(requestid);
rs.executeQuery(sql);
while (rs.next()) {
String loginid = rs.getString("loginid");
String staffid = rs.getString("staffid") ;
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction", "0");
taskObject.put("objectType", "0");
taskObject.put("objectCode", loginid);
taskObject.put("objectId", staffid);
taskObject.put("operatorCode", loginid);
taskObjectList.add(taskObject);
}
requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd;
bb.writeLog("monitorIntervention---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,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds);
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog("monitorIntervention-e:"+e);
}
}
/***
*
* @param messageTitle
* @return
*/
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
/***
*
* @param user
* @param copyList
* @param forwardList
*/
public void completeRemark89ForwardByIntervention(User user, List<Map<String,String>> copyList, List<Map<String,String>> forwardList, String note){
BaseBean bb = new BaseBean();
String loginid = user.getLoginid()+"" ;
try{
RequestInterventionRemark89SendPortalUtil requestInterventionRemark89SendPortalUtil = new RequestInterventionRemark89SendPortalUtil();
bb.writeLog("copyList:"+copyList.size());
if(copyList.size() >0){
String notes = note +"删除未读的抄送数据";
requestInterventionRemark89SendPortalUtil.requestInterventionByRemark89(copyList,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
RequestInterventionForwardSendPortalUtil requestInterventionForwardSendPortalUtil = new RequestInterventionForwardSendPortalUtil();
bb.writeLog("forwardList:"+forwardList.size());
if(forwardList.size() >0){
String notes = note +"删除未读的转发数据";
requestInterventionForwardSendPortalUtil.requestInterventionByForward(forwardList,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("operate3typeByList:"+e);
}
}
}

@ -0,0 +1,172 @@
package weaver.interfaces.dito.job;
import org.apache.commons.lang.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.schedule.BaseCronJob;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
public class BackupSendPortalLogCronJob extends BaseCronJob {
@Override
public void execute() {
updatePortalBackupData();
}
/***
*
*/
public void updatePortalBackupData(){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
LocalDate localDate = LocalDate.now();
String processTime = localDate.minusMonths(6).toString();
String message = "";
boolean isExist = false;
try{
String sql = " select max(id) as id from uf_portal_error_bak_cron ";
rs.executeQuery(sql);
if(rs.next()){
isExist = true;
}
}catch (Exception e){
isExist = false;
}
try{
if(isExist){
message += "1、备份表uf_portal_error_bak_cron 已存在。";
int backMaxId = 0;
String sql = " select max(id) as id from uf_portal_error_bak_cron where concat(modedatacreatedate,' ',modedatacreatetime) <='"+processTime+ "' " ;
rs.executeQuery(sql);
if(rs.next()){
backMaxId = Util.getIntValue(Util.null2String(rs.getString("id")));
}
message += "2、备份表uf_portal_error_bak_cron的最大ID是:"+backMaxId+"。";
int maxId = 0;
sql = " select max(id) as id from uf_portal_error where concat(modedatacreatedate,' ',modedatacreatetime) <='"+processTime+ "' " ;
rs.executeQuery(sql);
if(rs.next()){
maxId = Util.getIntValue(Util.null2String(rs.getString("id")));
}
message += "3、记录表uf_portal_error的最大ID是:"+maxId+"。";
if(backMaxId < maxId){
sql = " insert into uf_portal_error_bak_cron " +
" select * from uf_portal_error where concat(modedatacreatedate,' ',modedatacreatetime) <='"+processTime+ "' " +
" and not exists (\n" +
" select 1\n" +
" from uf_portal_error_bak_cron b\n" +
" where b.id = uf_portal_error.id\n" +
" ) " ;
bb.writeLog("insert-sql:"+sql);
boolean isTrue = rs.executeUpdate(sql);
if(isTrue){
message += "4、备份表uf_portal_error_bak_cron的插入新增数据成功。";
String newMaxId = "";
sql = " select max(id) as id from uf_portal_error_bak_cron where concat(modedatacreatedate,' ',modedatacreatetime) <='"+processTime+ "' " ;
rs.executeQuery(sql);
if(rs.next()){
newMaxId = Util.null2String(rs.getString("id"));
}
message += "5、备份表uf_portal_error_bak_cron的插入新增数据后的最大ID是:"+newMaxId+"。";
if(StringUtils.isNotEmpty(newMaxId)){
if(newMaxId.equals(maxId)){
message += "6、备份表uf_portal_error_bak_cron的插入新增数据后的最大ID:"+newMaxId+"与记录表uf_portal_error最大ID:"+maxId+"一致。";
sql = " delete from uf_portal_error where id <="+newMaxId+" and concat(modedatacreatedate,' ',modedatacreatetime) <='"+processTime+ "' and id in( select id from uf_portal_error_bak_cron ) " ;
boolean isDelete = rs.executeUpdate(sql);
if(isDelete){
message += "7、删除记录表uf_portal_error中ID小于"+newMaxId+"的数据成功。";
}else{
message += "7、删除记录表uf_portal_error中ID小于"+newMaxId+"的数据失败。";
}
}else{
message += "6、备份表uf_portal_error_bak_cron的插入新增数据后的最大ID为空,未删除记录表uf_portal_error的数据。";
sql = " delete from uf_portal_error where id <="+newMaxId+" and concat(modedatacreatedate,' ',modedatacreatetime) <='"+processTime+ "' and id in( select id from uf_portal_error_bak_cron ) " ;
boolean isDelete = rs.executeUpdate(sql);
if(isDelete){
message += "7、删除记录表uf_portal_error中ID小于"+newMaxId+"的数据成功。";
}else{
message += "7、删除记录表uf_portal_error中ID小于"+newMaxId+"的数据失败。";;
}
}
}else{
message += "6、备份表uf_portal_error_bak_cron的插入新增数据后的最大ID为空,未删除记录表uf_portal_error的数据。";
}
}else{
message += "4、备份表uf_portal_error_bak_cron的插入新增数据失败。";
}
}else{
message += "4、记录表uf_portal_error的最大ID:"+maxId+" 小于备份表uf_portal_error_bak_cron的最大ID:"+backMaxId+",无法进行数据同步。";
}
}else{
message += "1、备份表uf_portal_error_bak_cron不存在无法进行备份。";
}
RecordCronBackInfo(processTime,message);
}catch (Exception e){
bb.writeLog("e:"+e);
}
}
public void RecordCronBackInfo(String yhsj,String yhrz){
RecordSet rs = new RecordSet();
String uf_table = "uf_portal_back_log";
String formmodeid = "" ;
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = '"+uf_table+"' " ;
rs.execute(sql);
if(rs.next()){
formmodeid = Util.null2String(rs.getString("id"));
}
String modedatacreater = "1";
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");
String modedatacreatedate = sdfDate.format(new Date());
String modedatacreatetime = sdfTime.format(new Date());
String modedatacreatertype = "0";
Map<String,String> mainMap = new HashMap<String,String>();
mainMap.put("yhsj",yhsj);
mainMap.put("yhrz",yhrz);
mainMap.put("formmodeid",formmodeid);
mainMap.put("modedatacreater",modedatacreater);
mainMap.put("modedatacreatertype",modedatacreatertype);
mainMap.put("modedatacreatedate",modedatacreatedate);
mainMap.put("modedatacreatetime",modedatacreatetime);
String tablename = "" ;
String tablenvalue = "" ;
for (Map.Entry<String, String> entry : mainMap.entrySet())
{
String fieldname = Util.null2String(entry.getKey()).trim();
String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim();
tablename += tablename==""? fieldname :","+fieldname ;
tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ;
}
if(tablename !="" && tablenvalue !="")
{
sql = " insert into "+uf_table+"("+tablename+") values ("+ tablenvalue +")";
rs.execute(sql);
}
}
}

@ -0,0 +1,41 @@
package weaver.interfaces.dito.mq;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.listener.*;
import org.apache.rocketmq.common.message.MessageExt;
import weaver.general.BaseBean;
import java.io.UnsupportedEncodingException;
import java.util.List;
public class HrmRocketMsgListener2 implements MessageListenerOrderly {
@Override
public ConsumeOrderlyStatus consumeMessage(List<MessageExt> msgs, ConsumeOrderlyContext consumeOrderlyContext) {
HrmRocketmqUtil hrmRocketmqUtil = new HrmRocketmqUtil();
BaseBean bb = new BaseBean();
consumeOrderlyContext.setAutoCommit(true);
for (MessageExt msg : msgs) {
// 可以看到每个queue有唯一的consume线程来消费, 订单对每个queue(分区)有序
bb.writeLog("consumeThread=" + Thread.currentThread().getName() + "queueId=" + msg.getQueueId() + ", content:" + new String(msg.getBody()));
String msgdata = "";
try {
msgdata = new String(msg.getBody(),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if(StringUtils.isNotBlank(msgdata))
{
int errcount = hrmRocketmqUtil.updateOrgData(msgdata);
bb.writeLog("Consumer---errcount---:"+errcount);
}else{
bb.writeLog("Consumer---msgdata---is null ");
}
}
return ConsumeOrderlyStatus.SUCCESS;
}
}

@ -0,0 +1,199 @@
package weaver.interfaces.dito.mq;
import com.time.util.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.resource.ResourceComInfo;
import weaver.interfaces.schedule.BaseCronJob;
import java.time.LocalDate;
import java.util.*;
public class MqManagerUpdateCronJob extends BaseCronJob {
@Override
public void execute() {
updateManagerData2Day();
}
/***
*
*/
public void updateManagerData2Day(){
BaseBean bb = new BaseBean();
LocalDate now = LocalDate.now();
// LocalDate updDays = now.minusDays(4);
// bb.writeLog("updDays4:"+updDays.toString());
// updateManagerData(updDays.toString());
//
// updDays = now.minusDays(3);
// bb.writeLog("updDays3:"+updDays.toString());
// updateManagerData(updDays.toString());
//
// updDays = now.minusDays(2);
// bb.writeLog("updDays2:"+updDays.toString());
// updateManagerData(updDays.toString());
//
// updDays = now.minusDays(1);
// bb.writeLog("updDays1:"+updDays.toString());
// updateManagerData(updDays.toString());
bb.writeLog("now:"+now.toString());
updateManagerData_Day(now.toString());
}
/***
*
*/
// public void updateManagerData(String nowDate){
// RecordSet rs = new RecordSet();
// RecordSet rs2 = new RecordSet();
// BaseBean bb = new BaseBean();
// String uftable = "uf_managerunenforced" ;
// String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
// try{
// List<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
// String modesql = " select id,personid,managerid from "+uftable+" where startdate <='"+nowDate+"' and (case when char_length(trim(enddate)) > 0 then enddate else '2999-12-31' end) >='"+nowDate +"' and ifnull(sfsx,0) = 0 and ifnull(sfgx,0)=0 order by (case when char_length(trim(enddate)) > 0 then enddate else '2999-12-31' end) ";
// bb.writeLog("modesql:"+modesql);
// rs.executeQuery(modesql);
// while (rs.next()){
// String personid = Util.null2String(rs.getString("personid"));
// String managerid = Util.null2String(rs.getString("managerid"));
// String id = Util.null2String(rs.getString("id"));
//
// Map<String,String> dataMap = new HashMap<String,String>();
// dataMap.put("id",id);
// dataMap.put("personid",personid);
// dataMap.put("managerid",managerid);
// dataList.add(dataMap);
// }
//
// bb.writeLog("updateManagerData:dataList:"+dataList.size());
//
// for(int i=0;i<dataList.size();i++){
//
// Map<String,String> dataMap = dataList.get(i);
// String personid = Util.null2String(dataMap.get("personid"));
// String managerid = Util.null2String(dataMap.get("managerid"));
// String id = Util.null2String(dataMap.get("id"));
// String sql2 = " update hrmresource set managerid ="+managerid+" where id ="+personid;
// boolean isTrue = rs.executeUpdate(sql2);
// bb.writeLog("updateManagerData:sql2:"+sql2 +" "+isTrue);
// if(isTrue){
// int manageridcount = 0;
// String sql3 = "select managerid from hrmresource where id = "+personid;
// rs2.executeQuery(sql3);
// if(rs2.next()){
// String hrmmanagerid = Util.null2String(rs2.getString("managerid"));
// if(managerid.equals(hrmmanagerid)){
// manageridcount++;
// }
// }
// bb.writeLog("manageridcount:"+manageridcount);
//
// if(manageridcount == 0){
// String sql4 = " update hrmresource set managerid ="+managerid+" where id ="+personid;
// isTrue = rs2.executeUpdate(sql4);
// bb.writeLog("updateManagerData:isTrue:"+isTrue);
// }
//
// String upSql = sql2.replace("'","");
// String sql5 = " update "+uftable+" set sfgx = 1,gxsj='"+processTime+"',gxsq='"+upSql+"',sfyz='"+manageridcount+"' where id = "+id ;
// rs2.executeUpdate(sql5);
//
// }
// }
// }catch (Exception e){
// bb.writeLog("e:"+e);
// }
// }
/***
*
* @param nowDate
*/
public void updateManagerData_Day(String nowDate){
RecordSet rs = new RecordSet();
RecordSet rs2 = new RecordSet();
BaseBean bb = new BaseBean();
String uftable = "uf_managerunenforced" ;
ResourceComInfo resourceComInfo = null;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
try{
resourceComInfo = new ResourceComInfo();
List<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
String modesql = " select id,personid,managerid from "+uftable+" where startdate <='"+nowDate+"' and (case when char_length(trim(enddate)) > 0 then enddate else '2999-12-31' end) >='"+nowDate +"' and ifnull(sfsx,0) = 0 and ifnull(sfgx,0)=0 order by (case when char_length(trim(enddate)) > 0 then enddate else '2999-12-31' end) ";
bb.writeLog("modesql:"+modesql);
rs.executeQuery(modesql);
while (rs.next()){
String personid = Util.null2String(rs.getString("personid"));
String managerid = Util.null2String(rs.getString("managerid"));
String id = Util.null2String(rs.getString("id"));
Map<String,String> dataMap = new HashMap<String,String>();
dataMap.put("id",id);
dataMap.put("personid",personid);
dataMap.put("managerid",managerid);
dataList.add(dataMap);
}
for(int i=0;i<dataList.size();i++){
Map<String,String> dataMap = dataList.get(i);
String personid = Util.null2String(dataMap.get("personid"));
String managerid = Util.null2String(dataMap.get("managerid"));
String id = Util.null2String(dataMap.get("id"));
String sql2 = " update hrmresource set managerid ="+managerid+" where id ="+personid;
boolean isTrue = rs.executeUpdate(sql2);
bb.writeLog("updateManagerData:sql2:"+sql2 +" "+isTrue);
if(isTrue){
int manageridcount = 0;
String sql3 = "select managerid from hrmresource where id = "+personid;
rs2.executeQuery(sql3);
if(rs2.next()){
String hrmmanagerid = Util.null2String(rs2.getString("managerid"));
bb.writeLog("hrmmanagerid:"+hrmmanagerid);
if(managerid.equals(hrmmanagerid)){
manageridcount++;
}
}
bb.writeLog("manageridcount:"+manageridcount);
if(manageridcount == 0){
String sql4 = " update hrmresource set managerid ="+managerid+" where id ="+personid;
isTrue = rs2.executeUpdate(sql4);
bb.writeLog("updateManagerData:isTrue:"+isTrue);
}
String upSql = sql2.replace("'","");
String sql5 = " update "+uftable+" set sfgx = 1,gxsj='"+processTime+"',gxsq='"+upSql+"',sfyz='"+manageridcount+"' where id = "+id ;
isTrue = rs2.executeUpdate(sql5);
bb.writeLog(sql5+" isTrue5:"+isTrue);
String sql6 = " update "+uftable+" set sfsx = 1 where personid ='"+personid+"' and char_length(trim(enddate)) > 0 and enddate < '"+nowDate+"'";
isTrue = rs.executeUpdate(sql6);
bb.writeLog(sql6+" isTrue6:"+isTrue);
}
}
resourceComInfo.removeResourceCache();
MqManagerUpdateRunnable MqManagerUpdateRunnable = new MqManagerUpdateRunnable(dataList);
new Thread(MqManagerUpdateRunnable).start();
}catch (Exception e){
bb.writeLog("e:"+e);
}
}
// public static void main(String[] args) {
// LocalDate now = LocalDate.now();
// for(int i=0;i<=6;i++){
// LocalDate sevenDaysAgo = now.minusDays(6-i);
// System.out.println(sevenDaysAgo.toString());
// }
// }
}

@ -0,0 +1,86 @@
package weaver.interfaces.dito.mq;
import com.time.util.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.resource.ResourceComInfo;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class MqManagerUpdateRunnable implements Runnable {
private List<Map<String,String>> dataList = new ArrayList<Map<String,String>>();
public MqManagerUpdateRunnable(List<Map<String,String>> dataList){
this.dataList = dataList;
}
@Override
public void run() {
RecordSet rs = new RecordSet();
RecordSet rs2 = new RecordSet();
BaseBean bb = new BaseBean();
String uftable = "uf_managerunenforced" ;
bb.writeLog("MqManagerUpdateRunnable:dataList:"+dataList.size());
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
ResourceComInfo resourceComInfo = null;
try{
LocalDate now = LocalDate.now();
String nowDate = now.toString();
resourceComInfo = new ResourceComInfo();
for(int i=0;i<dataList.size();i++){
Map<String,String> dataMap = dataList.get(i);
String personid = Util.null2String(dataMap.get("personid"));
String managerid = Util.null2String(dataMap.get("managerid"));
String id = Util.null2String(dataMap.get("id"));
String sql2 = " update hrmresource set managerid ="+managerid+" where id ="+personid;
boolean isTrue = rs.executeUpdate(sql2);
bb.writeLog("updateManagerData:sql2:"+sql2 +" "+isTrue);
if(isTrue){
int manageridcount = 0;
String sql3 = "select managerid from hrmresource where id = "+personid;
rs2.executeQuery(sql3);
if(rs2.next()){
String hrmmanagerid = Util.null2String(rs2.getString("managerid"));
bb.writeLog("hrmmanagerid:"+hrmmanagerid);
if(managerid.equals(hrmmanagerid)){
manageridcount++;
}
}
bb.writeLog("manageridcount:"+manageridcount);
if(manageridcount == 0){
String sql4 = " update hrmresource set managerid ="+managerid+" where id ="+personid;
isTrue = rs2.executeUpdate(sql4);
bb.writeLog("updateManagerData:isTrue:"+isTrue);
}
String upSql = sql2.replace("'","");
String sql5 = " update "+uftable+" set sfgx = 1,gxsj='"+processTime+"',gxsq='"+upSql+"',sfyz='"+manageridcount+"' where id = "+id ;
isTrue = rs2.executeUpdate(sql5);
bb.writeLog(sql5+" isTrue5:"+isTrue);
String sql6 = " update "+uftable+" set sfsx = 1 where personid ='"+personid+"' and char_length(trim(enddate)) > 0 and enddate < '"+nowDate+"'";
isTrue = rs.executeUpdate(sql6);
bb.writeLog(sql6+" isTrue6:"+isTrue);
}
}
resourceComInfo.removeResourceCache();
}catch (Exception e){
bb.writeLog("MqManagerUpdateRunnable:e:"+e);
}
}
}

@ -0,0 +1,39 @@
package weaver.interfaces.dito.mq;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.listener.*;
import org.apache.rocketmq.common.message.MessageExt;
import weaver.general.BaseBean;
import java.io.UnsupportedEncodingException;
import java.util.List;
public class RocketMsgListener2 implements MessageListenerOrderly {
@Override
public ConsumeOrderlyStatus consumeMessage(List<MessageExt> list, ConsumeOrderlyContext consumeOrderlyContext) {
BaseBean bb = new BaseBean();
// MessageExt msg = list.get(0);
RocketmqUtil rocketmqUtil = new RocketmqUtil();
try {
for(MessageExt msg : list){
bb.writeLog("Consumer---3----"+new String(msg.getBody()));
String msgdata = new String(msg.getBody(),"UTF-8");
if(StringUtils.isNotBlank(msgdata))
{
String data = msgdata.substring(msgdata.indexOf("{"));
int errcount = rocketmqUtil.updateOrgData(data);
bb.writeLog("Consumer---errcount---:"+errcount);
}
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog("Consumer---UnsupportedEncodingException---e:"+e);
return ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT;
}
return ConsumeOrderlyStatus.SUCCESS;
}
}

@ -0,0 +1,609 @@
package weaver.interfaces.dito.paservice;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SubmitRequestRemarkUtil {
/**
*
* @param requestid
*/
public List<Map<String,String>> queryWorkflowCopyToByRequestid(String requestid,String current_userid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryWorkflowCopyToByRequestid-requestid:"+requestid);
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
String where = "";
if(StringUtils.isNotBlank(current_userid)){
where += " and t.userid in("+current_userid+")" ;
}
try{
Map<String,String> map = null ;
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.isremark in (8,9) \n" +
" and t.preisremark not in (18)\n" +
" and t.requestid in("+requestid +") " + where ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowCopyToByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
list.add(map);
}
bb.writeLog("queryWorkflowCopyToByRequestid-list:"+list.size());
}
}catch (Exception e){
}
return list;
}
public List<Map<String,String>> queryWorkflowForwardByRequestid(String requestid,String current_userid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryWorkflowForwardByRequestid-requestid:"+requestid);
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
String where = "";
if(StringUtils.isNotBlank(current_userid)){
where += " and t.userid in("+current_userid+")" ;
}
try{
Map<String,String> map = null ;
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.isremark = 1 \n" +
" and t.requestid in("+requestid +") "+where ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowForwardByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
list.add(map);
}
bb.writeLog("queryWorkflowForwardByRequestid-list:"+list.size());
}
}catch (Exception e){
}
return list;
}
public List<Map<String,String>> queryWorkflowAtByRequestid(String requestid,String current_userid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryWorkflowAtByRequestid-requestid:"+requestid);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
String where = "";
if(StringUtils.isNotBlank(current_userid)){
where += " and t.userid in("+current_userid+")" ;
}
try{
Map<String, String> map = null;
if (StringUtils.isNotBlank(requestid)) {
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.isremark in (8) and t.preisremark in (18) \n" +
" and t.requestid in("+requestid +") "+where ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowAtByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
list.add(map);
}
bb.writeLog("queryWorkflowAtByRequestid-list:" + list.size());
}
}catch (Exception e){
}
return list;
}
/***
*
* @param user
* @param copyList
* @param forwardList
* @param atList
*/
public void operate3typeByList(User user, List<Map<String,String>> copyList, List<Map<String,String>> forwardList, List<Map<String,String>> atList,String note){
BaseBean bb = new BaseBean();
String loginid = user.getLoginid()+"" ;
SendPortalMonitorDeleteUtil sendPortalMonitorDeleteUtil = new SendPortalMonitorDeleteUtil();
try{
bb.writeLog("copyList:"+copyList.size());
if(copyList.size() >0){
String notes = note +"删除未读的抄送数据";
sendPortalMonitorDeleteUtil.monitorFinishedWorkflowCopyToByRequestid(copyList,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
bb.writeLog("forwardList:"+forwardList.size());
if(forwardList.size() >0){
String notes = note +"删除未读的转发数据";
sendPortalMonitorDeleteUtil.monitorFinishedWorkflowForwardByRequestid(forwardList,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
bb.writeLog("atList:"+atList.size());
if(atList.size() >0){
String notes = note + "删除未读的@数据";
sendPortalMonitorDeleteUtil.monitorFinishedWorkflowAtByRequestid(atList,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
}
/**
* @
*
* @param requestid
*/
public void queryWorkflowRemark8AtByLoadForm(String requestid,String current_userid,List<Map<String, String>> remark8List,List<Map<String, String>> atList,List<Map<String, String>> remark9List){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryWorkflowRemark8AtByLoadForm-requestid:"+requestid);
try{
Map<String,String> map = null ;
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.id,t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,t.preisremark\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.isremark in (8,9) \n" +
" and t.preisremark in (8,9,18)\n" +
" and t.requestid in("+requestid +") and t.userid in("+current_userid+")" ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowRemark8AtByLoadForm-sql:"+sql);
while (rs.next()){
String currentid = Util.null2String(rs.getString("id"));
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String preisremark = Util.null2String(rs.getString("preisremark")) ;
map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("currentid",currentid);
if("8".equals(preisremark)){
remark8List.add(map);
}else if("18".equals(preisremark)){
atList.add(map);
}else if("9".equals(preisremark)){
remark9List.add(map);
}
}
bb.writeLog("queryWorkflowRemark8AtByLoadForm-remark8List:"+remark8List.size());
bb.writeLog("queryWorkflowRemark8AtByLoadForm-atList:"+atList.size());
bb.writeLog("queryWorkflowRemark8AtByLoadForm-remark9List:"+remark9List.size());
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("queryWorkflowRemark8AtByLoadForm-e:"+e);
}
}
/***
* @@
* @param loginid
* @param remark8List
* @param atList
*/
public void completeReamrk8AtByLoadForm(String loginid, List<Map<String,String>> remark8List, List<Map<String,String>> atList){
BaseBean bb = new BaseBean();
SendPortalMonitorDeleteUtil sendPortalMonitorDeleteUtil = new SendPortalMonitorDeleteUtil();
try{
bb.writeLog("remark8List888:"+remark8List.size());
if(remark8List.size() >0){
String notes = "打开流程表单详情页面,完成抄送不需提交的数据";
sendPortalMonitorDeleteUtil.monitorFinishedWorkflowCopyToByRequestid(remark8List,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("remark8List3-e:"+e);
}
try{
bb.writeLog("atList888:"+atList.size());
if(atList.size() >0){
String notes = "打开流程表单详情页面,完成@的数据门户调用";
sendPortalMonitorDeleteUtil.monitorFinishedWorkflowAtByRequestid(atList,loginid,notes);
completePortalAtDoneByRequestid(atList,loginid);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("atList3-e:"+e);
}
}
/***
*
* @param requestid
* @param current_nodeid
* @param remarkList
* @param atList
*/
public void queryRemarkToPortalByIntervenor(String requestid,String current_nodeid,List<Map<String,String>> remarkList,List<Map<String,String>> atList){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRemarkToPortalByIntervenor-requestid:"+requestid);
try{
Map<String,String> map = null ;
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,t.preisremark\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.isremark in (8,9) \n" +
" and t.preisremark in (8,9,18)\n" +
" and t.requestid in("+requestid +") " +
" and t.nodeid in("+current_nodeid+")" ;
rs.executeQuery(sql);
bb.writeLog("queryRemarkToPortalByIntervenor-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String preisremark = Util.null2String(rs.getString("preisremark")) ;
map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
if("8".equals(preisremark) || "9".equals(preisremark)){
remarkList.add(map);
}else if("18".equals(preisremark)){
atList.add(map);
}
}
bb.writeLog("queryRemarkToPortalByIntervenor-remarkList:"+remarkList.size());
bb.writeLog("queryRemarkToPortalByIntervenor-atList:"+atList.size());
}
}catch (Exception e){
}
}
/***
*
* @param requestid
* @param current_nodeid
* @return
*/
public List<Map<String,String>> queryForwardToPortalByIntervenor(String requestid,String current_nodeid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryForwardToPortalByIntervenor-requestid:"+requestid);
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
try{
Map<String,String> map = null ;
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.isremark = 1 \n" +
" and t.requestid in("+ requestid +") " +
" and t.nodeid in("+ current_nodeid +")" ;
rs.executeQuery(sql);
bb.writeLog("queryForwardToPortalByIntervenor-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
list.add(map);
}
bb.writeLog("queryForwardToPortalByIntervenor-list:"+list.size());
}
}catch (Exception e){
}
return list;
}
/***
*
* @return
*/
public void completePortalAtDoneByRequestid(List<Map<String,String>> atList,String loginid){
BaseBean bb = new BaseBean();
try{
bb.writeLog("completePortalAtDoneByRequestid-atList:"+atList.size());
if(atList.size() >0){
String notes = "打开流程表单详情页面,@的数据生成已办";
for(int i=0;i<atList.size();i++){
Map<String,String> dataMap = atList.get(i);
String requestid = Util.null2String(dataMap.get("lcid"));
String userid = Util.null2String(dataMap.get("userid"));
String nodeid = Util.null2String(dataMap.get("nodeid"));
String nodename = Util.null2String(dataMap.get("nodename"));
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
bb.writeLog("completePortalAtDoneByRequestid-userid:"+userid);
bb.writeLog("completePortalAtDoneByRequestid-nodeid:"+nodeid);
bb.writeLog("completePortalAtDoneByRequestid-requestid:"+requestid);
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
completePortalAtDoneData(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes);
}
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("completePortalAtDoneByRequestid-e:"+e);
}
}
/**
*
* @param requestid
* @param userid
* @param currentnodeid
* @param loginid
* @param workflowname
* @param requestname
* @param nodename
* @param notes
* @return
*/
public String completePortalAtDoneData(String requestid,String userid,String currentnodeid,String loginid,String workflowname,String requestname,String nodename,String notes){
String zhjkbs = "com.customization.dito.sendtodo.SendPortalTodoDeleteUtil.completePortalAtDoneData";
String resultCode = "" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
String username = PropBean.getUfPropValue("username");
String passwd = PropBean.getUfPropValue("passwd");
String center = PropBean.getUfPropValue("center");
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String portal_doneurl = PropBean.getUfPropValue("portal_doneurl");
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
String actionType = "0" ;
try {
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
if(org.apache.commons.lang.StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
String newNodeId = requestid+userid+"_"+System.currentTimeMillis();
String createrLoginId = "";
String basesql =" select h2.loginid "+
" from workflow_requestbase t1\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("completePortalAtDoneData:sql:"+basesql);
rs.executeQuery(basesql);
if(rs.next()){
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
bb.writeLog("completePortalAtDoneData--createrLoginId:"+createrLoginId);
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("nodeId",newNodeId);
requestObject.put("ticketType",workflowname);
requestObject.put("center", center);
requestObject.put("taskCode", "weaver" + requestid);
requestObject.put("processStaff", loginid);
requestObject.put("processTime", processTime);
requestObject.put("isRecall", "1");
requestObject.put("actionType", actionType);
requestObject.put("urlPC", urlPc);
requestObject.put("urlApp", urlApp);
requestObject.put("urlDing", urlDing);
String auth = username + ":" + passwd;
bb.writeLog("completePortalAtDoneData done requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth);
bb.writeLog("completePortalAtDoneData done msgdata:" + msgdata);
if (org.apache.commons.lang.StringUtils.isNotEmpty(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
bb.writeLog("completePortalAtDoneData--msgObject:" + msgObject.toJSONString());
if (msgObject.containsKey("resultCode")) {
resultCode = msgObject.getString("resultCode");
if (!"0".equals(resultCode)) {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentnodeid, newNodeId, userid+ "", requestObject.toJSONString(), resultCode, resultmsg, zhjkbs,"",notes);
}else{
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentnodeid, newNodeId, userid + "", requestObject.toJSONString(), resultCode, "", zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog(e);
}
return resultCode;
}
/***
*
* @param requestid
* @return
*/
public String queryCurrentNodeIdByRequestid(String requestid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryCurrentNodeIdByRequestid-requestid:"+requestid);
String currentnodeid = "";
try{
if (StringUtils.isNotBlank(requestid)) {
String sql =" select currentnodeid from workflow_requestbase where requestid = "+requestid ;
rs.executeQuery(sql);
bb.writeLog("queryCurrentNodeIdByRequestid-sql:"+sql);
if (rs.next()){
currentnodeid = Util.null2String(rs.getString("currentnodeid"));
}
}
}catch (Exception e){
bb.writeLog("queryCurrentNodeIdByRequestid:"+e);
}
return currentnodeid;
}
}

@ -0,0 +1,368 @@
package weaver.interfaces.dito.paservice;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.customization.dito.sendtodo.SendMailUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SubmitRequestUtil {
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
public void sendTodoDataByNode(String requestid, User user,String nodeid){
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 = "com.customization.dito.sendtodo.SendPortalTodoUtil.sendTodoDataByNode" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendMailUtil sendMailUtil = new SendMailUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByNode");
String terminal = "1" ;
String taskType = "0";
String emailArray = "";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
try {
String nextNodeUserIds = "" ;
String message = "流程对外接口提交流程," ;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
String currentnodetype = baseMap.get("currentnodetype");
bb.writeLog("sendTodoDataByNode-currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
String currentUserId = user.getUID()+"" ;
message = "流程流转到归档节点执行actionType=3" ;
String actionType = "3" ;
try {
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
if(org.apache.commons.lang3.StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
bb.writeLog("sendTodoDataByNode-3-requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("sendTodoDataByNode-3-msgdata:"+msgdata);
if(StringUtils.isNotBlank(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,"",message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message);
}
}
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog("sendTodoDataByNode:"+e);
}
}else{
message += "非归档节点,流程流转从"+nodeid+"节点提交" ;
int count = requestBaseInfoUtil.getTodoCountByRequestNode(requestid,nodeid);
// count >0 会签还没有流转到下个节点
if(count >0){
message += ",流程流转到"+currentNodeId+"节点执行actionType=1" ;
String currentLoginId = user.getLoginid() ;
String currentUserId = user.getUID()+"" ;
String currentStaffId = requestBaseInfoUtil.getUserStaffid(currentUserId);
JSONArray taskObjectList = new JSONArray();
String actionType = "1" ;
String objectAction = "1" ;
String objectType = "0";
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
if(StringUtils.isNotBlank(currentLoginId)){
String objectCode = currentLoginId ;
String operatorCode = currentLoginId ;
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction",objectAction);
taskObject.put("objectType",objectType);
taskObject.put("objectCode",objectCode);
taskObject.put("operatorCode",operatorCode);
taskObject.put("objectId",currentStaffId);
taskObjectList.add(taskObject);
}
String sql = requestBaseInfoUtil.getTodoSql(requestid);
bb.writeLog("sendTodoDataByNode--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()){
String usercode = Util.null2String(rs.getString("loginid")) ;
String staffid = Util.null2String(rs.getString("staffid")) ;
String objectCode = usercode ;
String operatorCode = usercode ;
objectAction = "0";
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction",objectAction);
taskObject.put("objectType",objectType);
taskObject.put("objectCode",objectCode);
taskObject.put("objectId",staffid);
taskObject.put("operatorCode",operatorCode);
taskObjectList.add(taskObject);
}
requestObject.put("taskObjectList",taskObjectList);
if (taskObjectList.size() > 0){
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
bb.writeLog("emailArray:"+emailArray);
if(StringUtils.isNotEmpty(emailArray))
{
Map<String,String> templateMap = getEmailTemplate(requestname,createrLastName,processTime);
String notificationSubject = templateMap.get("notificationSubject");
String notificationContent = templateMap.get("notificationContent");
sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds,message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds,message);
}
}
}
}
}else{
String currentUserId = user.getUID()+"" ;
String objectAction = "0" ;
String objectType = "0";
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
JSONArray taskObjectList = new JSONArray();
String sql = requestBaseInfoUtil.getTodoSql(requestid);
bb.writeLog("sendTodoDataByNode--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()){
String usercode = Util.null2String(rs.getString("loginid")) ;
String staffid = Util.null2String(rs.getString("staffid")) ;
String objectCode = usercode ;
String operatorCode = usercode ;
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction",objectAction);
taskObject.put("objectType",objectType);
taskObject.put("objectCode",objectCode);
taskObject.put("objectId",staffid);
taskObject.put("operatorCode",operatorCode);
taskObjectList.add(taskObject);
String email = Util.null2String(rs.getString("email")) ;
bb.writeLog("email3:"+email);
Matcher matcher = regex.matcher(email);
if(matcher.matches()){
emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
}
}
if (taskObjectList.size() >0){
requestObject.put("actionType","2");
requestObject.put("taskObjectList",taskObjectList);
message += ",流程流转到"+currentNodeId+"节点执行actionType=2" ;
}else {
requestObject.put("actionType","3");
message += ",流程流转到"+currentNodeId+"节点执行actionType=3" ;
}
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
bb.writeLog("emailArray:"+emailArray);
if(StringUtils.isNotEmpty(emailArray))
{
Map<String,String> templateMap = getEmailTemplate(requestname,createrLastName,processTime);
String notificationSubject = templateMap.get("notificationSubject");
String notificationContent = templateMap.get("notificationContent");
sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds,message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds,message);
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
public Map<String,String> getEmailTemplate(String requestname, String operator, String operatorTime){
Map<String,String> dataMap = new HashMap<String,String>();
String notificationSubject = "You have a new To-Do task - <"+requestname+"> ";
String notificationContent = operator + " created this task on "+operatorTime+"\n" +
"Please handle it in time.";
dataMap.put("notificationSubject",notificationSubject);
dataMap.put("notificationContent",notificationContent);
return dataMap;
}
}

@ -0,0 +1,237 @@
package weaver.interfaces.dito.reject;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.customization.dito.sendtodo.SendMailUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RemarkRejectSendPortalUtil {
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
/***
* 退退
*
* @param requestid
* @param noideid
* @param user
*/
public void sendTodoDataByReject(String requestid, String noideid, User user, String portal_todourl, String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String center, String bpm_app_requesturl){
String zhjkbs = "weaver.interfaces.dito.reject.RequestRejectSendPortalUtil.sendTodoDataByReject" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendMailUtil sendMailUtil = new SendMailUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String emailArray = "";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
String notes = "";
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByReject");
RecordSet rs = new RecordSet();
String terminal = "1" ;
String taskType = "0";
String objectAction = "0" ;
String objectType = "0";
String currentUserId = user.getUID()+"" ;
String nextNodeUserIds = "";
try {
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
String currentnodetype = baseMap.get("currentnodetype");
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid ;
String urlApp = replace+bpm_app_requesturl+requestid ;
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
if ("3".equals(currentnodetype)) {
String actionType = "3";
notes = "流程退回到归档节点";
try {
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center", center);
requestObject.put("taskCode", "weaver" + requestid);
requestObject.put("taskType", taskType);
requestObject.put("actionType", actionType);
requestObject.put("createDate", processTime);
requestObject.put("messageTitle", getShortMessageTitle(requestname));
requestObject.put("terminal", terminal);
requestObject.put("urlPc", urlPc);
requestObject.put("urlApp", urlApp);
requestObject.put("urlDing", urlDing);
String auth = username + ":" + passwd;
bb.writeLog("requestObject:" + requestObject.toJSONString() + "</br>");
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
bb.writeLog("msgdata:" + msgdata + "</br>");
if (!"".equals(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, currentNodeName, "", requestObject.toJSONString(), resultCode, "", zhjkbs, "", notes);
} else {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, currentNodeName, "", requestObject.toJSONString(), resultCode, resultmsg, zhjkbs, "", notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}else{
notes = "流程退回到:"+currentNodeName+"("+currentNodeId+")节点";
JSONArray taskObjectList = new JSONArray();
String actionType = "2" ;
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String sql = requestBaseInfoUtil.getTodoSql(requestid);
bb.writeLog("sendTodoDataByReject--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()){
String usercode = Util.null2String(rs.getString("loginid")) ;
String staffid = Util.null2String(rs.getString("staffid")) ;
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",staffid);
taskObject.put("operatorCode",operatorCode);
taskObjectList.add(taskObject);
String email = Util.null2String(rs.getString("email")) ;
bb.writeLog("email4:"+email);
Matcher matcher = regex.matcher(email);
if(matcher.matches()){
emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
}
}
requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
bb.writeLog("emailArray:"+emailArray);
if(StringUtils.isNotEmpty(emailArray))
{
Map<String,String> templateMap = getEmailTemplate(requestname,createrLastName,processTime);
String notificationSubject = templateMap.get("notificationSubject");
String notificationContent = templateMap.get("notificationContent");
sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, currentNodeName, "", requestObject.toJSONString(), resultCode, "", zhjkbs, "", notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, currentNodeName, "", requestObject.toJSONString(), resultCode, resultmsg, zhjkbs, "", notes);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/***
*
* @param messageTitle
* @return
*/
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
/***
*
* @param requestname
* @param operator
* @param operatorTime
* @return
*/
public Map<String,String> getEmailTemplate(String requestname, String operator, String operatorTime){
Map<String,String> dataMap = new HashMap<String,String>();
String notificationSubject = "You have a new To-Do task - <"+requestname+"> ";
String notificationContent = operator + " created this task on "+operatorTime+"\n" +
"Please handle it in time.";
dataMap.put("notificationSubject",notificationSubject);
dataMap.put("notificationContent",notificationContent);
return dataMap;
}
}

@ -0,0 +1,399 @@
package weaver.interfaces.dito.reject;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.customization.dito.sendtodo.SendMailUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequestRejectSendPortalUtil {
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
public void sendTodoDataByReject(String requestid, String noideid, User user, String portal_todourl, String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String center, String bpm_app_requesturl) {
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByReject");
sendTodoPortalByReject(requestid,noideid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
sendReadPortalByReject(requestid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
}
/***
* 退退
*
* @param requestid
* @param noideid
* @param user
*/
public void sendTodoPortalByReject(String requestid, String noideid, User user, String portal_todourl, String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String center, String bpm_app_requesturl){
String zhjkbs = "weaver.interfaces.dito.reject.RequestRejectSendPortalUtil.sendTodoPortalByReject" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendMailUtil sendMailUtil = new SendMailUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String emailArray = "";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
String notes = "";
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoPortalByReject");
RecordSet rs = new RecordSet();
String terminal = "1" ;
String taskType = "0";
String objectAction = "0" ;
String objectType = "0";
try {
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
String currentnodetype = baseMap.get("currentnodetype");
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid ;
String urlApp = replace+bpm_app_requesturl+requestid ;
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
if ("3".equals(currentnodetype)) {
String actionType = "3";
notes = "流程退回到归档节点";
try {
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center", center);
requestObject.put("taskCode", "weaver" + requestid);
requestObject.put("taskType", taskType);
requestObject.put("actionType", actionType);
requestObject.put("createDate", processTime);
requestObject.put("messageTitle", getShortMessageTitle(requestname));
requestObject.put("terminal", terminal);
requestObject.put("urlPc", urlPc);
requestObject.put("urlApp", urlApp);
requestObject.put("urlDing", urlDing);
String auth = username + ":" + passwd;
bb.writeLog("requestObject:" + requestObject.toJSONString() + "</br>");
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
bb.writeLog("msgdata:" + msgdata + "</br>");
if (!"".equals(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, currentNodeName, "", requestObject.toJSONString(), resultCode, "", zhjkbs, "", notes);
} else {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, currentNodeName, "", requestObject.toJSONString(), resultCode, resultmsg, zhjkbs, "", notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}else{
notes = "流程退回到:"+currentNodeName+"("+currentNodeId+")节点";
JSONArray taskObjectList = new JSONArray();
String actionType = "2" ;
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
String sql = requestBaseInfoUtil.getTodoSql(requestid);
bb.writeLog("sendTodoDataByReject--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()){
String usercode = Util.null2String(rs.getString("loginid")) ;
String staffid = Util.null2String(rs.getString("staffid")) ;
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",staffid);
taskObject.put("operatorCode",operatorCode);
taskObjectList.add(taskObject);
String email = Util.null2String(rs.getString("email")) ;
bb.writeLog("email4:"+email);
Matcher matcher = regex.matcher(email);
if(matcher.matches()){
emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
}
}
requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
bb.writeLog("emailArray:"+emailArray);
if(StringUtils.isNotEmpty(emailArray))
{
Map<String,String> templateMap = getEmailTemplate(requestname,createrLastName,processTime);
String notificationSubject = templateMap.get("notificationSubject");
String notificationContent = templateMap.get("notificationContent");
sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, currentNodeName, "", requestObject.toJSONString(), resultCode, "", zhjkbs, "", notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid, currentNodeId, currentNodeName, "", requestObject.toJSONString(), resultCode, resultmsg, zhjkbs, "", notes);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/***
*
* @param messageTitle
* @return
*/
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
/***
*
* @param requestname
* @param operator
* @param operatorTime
* @return
*/
public Map<String,String> getEmailTemplate(String requestname, String operator, String operatorTime){
Map<String,String> dataMap = new HashMap<String,String>();
String notificationSubject = "You have a new To-Do task - <"+requestname+"> ";
String notificationContent = operator + " created this task on "+operatorTime+"\n" +
"Please handle it in time.";
dataMap.put("notificationSubject",notificationSubject);
dataMap.put("notificationContent",notificationContent);
return dataMap;
}
/***
* @param requestid
* @param user
*/
public void sendReadPortalByReject(String requestid,User user,String portal_todourl,String bpm_app_workflowurl,String username,String passwd,String bpm_workflowurl,String center,String bpm_app_requesturl){
String zhjkbs = "weaver.interfaces.dito.reject.RequestRejectSendPortalUtil.sendReadPortalByReject" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("sendReadPortalByReject");
String currentUserId = user.getUID()+"" ;
String terminal = "1" ;
String actionType = "0" ;
String taskType = "1";
String objectAction = "0" ;
String objectType = "0";
try {
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("urlDing", urlDing);
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
String currentNodeName = baseMap.get("currentnodeid");
String workflowname = baseMap.get("workflowname");
String createrLoginId = baseMap.get("createrloginid");
String createrLastName = baseMap.get("createrusername");
String requestname = baseMap.get("requestname");
JSONArray taskObjectList = new JSONArray();
String sql = getRemark89Sql(requestid,currentNodeId);
bb.writeLog("SendPortalToReadUtil-sendToReadDataByNode--sql:" + sql);
rs.executeQuery(sql);
while (rs.next()) {
String nodeid = Util.null2String(rs.getString("nodeid")) ;
String nodename = Util.null2String(rs.getString("nodename")) ;
String staffid = Util.null2String(rs.getString("staffid")) ;
String loginid = Util.null2String(rs.getString("loginid")) ;
String userid = Util.null2String(rs.getString("userid")) ;
JSONObject taskObject = new JSONObject();
taskObject.put("nodeid",nodeid);
taskObject.put("nodename",nodename);
taskObject.put("loginid",loginid);
taskObject.put("staffid",staffid);
taskObject.put("userid",userid);
taskObjectList.add(taskObject);
}
for (int i = 0; i < taskObjectList.size(); i++) {
JSONObject dataObject = taskObjectList.getJSONObject(i);
String nodeid = dataObject.getString("nodeid");
String nodename = dataObject.getString("nodename");
String loginid = dataObject.getString("loginid");
String userid = dataObject.getString("userid");
String staffid = dataObject.getString("staffid");
JSONObject taskObject = new JSONObject();
String objectCode = loginid ;
String operatorCode = loginid ;
taskObject.put("objectAction",objectAction);
taskObject.put("objectType",objectType);
taskObject.put("objectCode",objectCode);
taskObject.put("objectId",staffid);
taskObject.put("operatorCode",operatorCode);
JSONArray taskArray = new JSONArray();
taskArray.add(taskObject);
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("ticketType",workflowname);
requestObject.put("center", center);
requestObject.put("taskType", taskType);
requestObject.put("actionType", actionType);
requestObject.put("createDate", processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("terminal", terminal);
requestObject.put("urlPc", urlPc);
requestObject.put("urlDing", urlDing);
requestObject.put("urlApp",urlApp);
requestObject.put("nodeName",nodename);
requestObject.put("nodeId",nodeid);
requestObject.put("taskCode", requestid+"_cs_"+userid);
requestObject.put("taskObjectList",taskArray);
String auth = username + ":" + passwd;
bb.writeLog("SendPortalToReadUtil--requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
bb.writeLog("SendPortalToReadUtil-msgdata:" + msgdata);
if (!"".equals(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodename,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,userid);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodename,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/***
*
* @param requestid
* @param currentNodeId
* @return
*/
public String getRemark89Sql(String requestid,String currentNodeId){
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String 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') and t2.preisremark not in ('18') \n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid +" and t2.nodeid = "+currentNodeId ;
return sql;
}
}

@ -0,0 +1,37 @@
package weaver.interfaces.dito.remark;
import com.time.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
public class UpdateRequestRemarkViewDateRunnable implements Runnable{
private String requestid;
private String userid;
private String preisremark;
public UpdateRequestRemarkViewDateRunnable(String requestid, String userid, String preisremark){
this.requestid = requestid;
this.userid = userid;
this.preisremark = preisremark;
}
@Override
public void run() {
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
try{
String viewDate = DateUtil.getCurrentTime("yyyy-MM-dd");
String viewTime = DateUtil.getCurrentTime("HH:mm:ss");
bb.writeLog("updateCurrentoperatorRemark-requestid:"+requestid);
if(StringUtils.isNotBlank(requestid)){
String sql = " update workflow_currentoperator set isremark=2,viewtype=-2,viewdate=(case when viewdate is not null then viewdate else '"+viewDate+"' end),viewtime=(case when viewtime is not null then viewtime else '"+viewTime+"' end) where requestid = "+requestid +" and preisremark in ("+preisremark+") and userid in("+userid+")";
boolean isTrue = rs.executeUpdate(sql);
bb.writeLog("updateCurrentoperatorRemark-sql:"+sql +" isTrue:"+isTrue);
}
}catch (Exception e){
bb.writeLog("updateCurrentoperatorRemark-e:"+e);
}
}
}

@ -0,0 +1,195 @@
package weaver.interfaces.dito.submit;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class RequestSubmitQueryPortalUtil {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
/**
*
* @param requestid
*/
public List<Map<String,String>> queryRequestReamrk89BySubmit(String requestid,String currentUserid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestReamrk8ByDelete-requestid:"+requestid);
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
try{
if(StringUtils.isNotBlank(requestid)){
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark not in (8,9)\n" +
" and t.requestid in("+requestid +") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowCopyToByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
bb.writeLog("queryWorkflowCopyToByRequestid-list:"+list.size());
}
}
}catch (Exception e){
}
return list;
}
public List<Map<String,String>> queryRequestForwardBySubmit(String requestid,String currentUserid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestForwardByDelete-requestid:"+requestid);
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
try{
if(StringUtils.isNotBlank(requestid)){
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark = 1 \n" +
" and t.requestid in("+requestid +") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowForwardByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
}
}catch (Exception e){
}
return list;
}
public List<Map<String,String>> queryRequestAtBySubmit(String requestid,String currentUserid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestAtByDelete-requestid:"+requestid);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
try{
if (StringUtils.isNotBlank(requestid)) {
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,h2.loginid\n" +
" from workflow_currentoperator t\n" +
" inner join workflow_requestbase t1 on t.requestid = t1.requestid\n" +
" left join (select id,lastname,loginid from hrmresource union all select id,lastname,loginid from hrmresourcemanager ) h2 on h2.id = t1.creater \n" +
" left join workflow_nodebase t2 on t2.id = t.nodeid \n" +
" left join workflow_base t3 on t3.id = t1.workflowid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t.preisremark in (18) \n" +
" and t.requestid in("+requestid +") " ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowAtByRequestid-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String userid = Util.null2String(rs.getString("userid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
String lcid = Util.null2String(rs.getString("requestid")) ;
String creater = Util.null2String(rs.getString("loginid")) ;
Map<String,String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid);
map.put("nodeid",nodeid);
map.put("nodename",nodename);
map.put("workflowname",workflowname);
map.put("requestname",requestname);
map.put("lcid",lcid);
map.put("creater",creater);
list.add(map);
}
}
}catch (Exception e){
}
return list;
}
public List<Map<String,String>> queryRequestDataByDelete(String requestids,String currentUserid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestDataByDelete-requestid:"+requestids);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
try{
if (StringUtils.isNotBlank(requestids)) {
String[] requestid = requestids.split(",");
for(int i=0;i<requestid.length;i++){
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid[i]);
list.add(baseMap);
}
}
}catch (Exception e){
}
return list;
}
}

@ -0,0 +1,64 @@
package weaver.interfaces.dito.util.okhttp;
import okhttp3.*;
import okio.Buffer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.nio.charset.Charset;
public class NetworkIntercepter implements Interceptor{
private static Logger LOGGER = LoggerFactory.getLogger(NetworkIntercepter.class);
@Override
public Response intercept(Interceptor.Chain chain) {
long start = System.currentTimeMillis();
Response response=null;
String responseBody = null;
String responseCode = null;
String url = null;
String requestBody = null;
try {
Request request = chain.request();
url = request.url().toString();
requestBody = getRequestBody(request);
response = chain.proceed(request);
responseBody = response.body().string();
responseCode = String.valueOf(response.code());
MediaType mediaType = response.body().contentType();
response = response.newBuilder().body(ResponseBody.create(mediaType,responseBody)).build();
}
catch (Exception e){
LOGGER.error(e.getMessage());
}
finally {
long end = System.currentTimeMillis();
String duration = String.valueOf(end - start);
LOGGER.info("responseTime= {}, requestUrl= {}, params={}, responseCode= {}, result= {}",
duration, url,requestBody,responseCode,responseBody);
}
return response;
}
private String getRequestBody(Request request) {
String requestContent = "";
if (request == null) {
return requestContent;
}
RequestBody requestBody = request.body();
if (requestBody == null) {
return requestContent;
}
try {
Buffer buffer = new Buffer();
requestBody.writeTo(buffer);
Charset charset = Charset.forName("utf-8");
requestContent = buffer.readString(charset);
} catch (IOException e) {
e.printStackTrace();
}
return requestContent;
}
}

@ -0,0 +1,41 @@
package weaver.interfaces.dito.util.okhttp;
import okhttp3.ConnectionPool;
import okhttp3.OkHttpClient;
import java.util.concurrent.TimeUnit;
public class OkHttpUtils {
private static final int CONNECTION_TIME_OUT = 2000;//连接超时时间
private static final int SOCKET_TIME_OUT = 2000;//读写超时时间
private static final int MAX_IDLE_CONNECTIONS = 30;// 空闲连接数
private static final long KEEP_ALLIVE_TIME = 60000L;//保持连接时间
private OkHttpClient okHttpClient;
private volatile static OkHttpUtils okhttpUtils;
public static OkHttpUtils getInstance(){
if(okhttpUtils == null){
synchronized(OkHttpUtils.class){
if(okhttpUtils == null){
okhttpUtils = new OkHttpUtils();
}
}
}
return okhttpUtils;
}
public OkHttpUtils(){
ConnectionPool connectionPool = new ConnectionPool(MAX_IDLE_CONNECTIONS,KEEP_ALLIVE_TIME, TimeUnit.MILLISECONDS);
this.okHttpClient = new OkHttpClient()
.newBuilder()
.readTimeout(SOCKET_TIME_OUT, TimeUnit.MILLISECONDS)
.writeTimeout(SOCKET_TIME_OUT, TimeUnit.MILLISECONDS)
.connectionPool(connectionPool)
.retryOnConnectionFailure(false) //自动重连设置为false
.connectTimeout(CONNECTION_TIME_OUT,TimeUnit.MILLISECONDS)
.addInterceptor(new RetryIntercepter(2)) //重试拦截器2次
.addNetworkInterceptor(new NetworkIntercepter()) //网络拦截器,统一打印日志
.build();
}
}

@ -0,0 +1,41 @@
package weaver.interfaces.dito.util.okhttp;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class RetryIntercepter implements Interceptor{
public int maxRetryCount;
private int count = 0;
public RetryIntercepter(int maxRetryCount) {
this.maxRetryCount = maxRetryCount;
}
@Override
public Response intercept(Chain chain) throws IOException {
return retry(chain);
}
public Response retry(Chain chain){
Response response = null;
Request request = chain.request();
try {
response = chain.proceed(request);
while (!response.isSuccessful() && count < maxRetryCount) {
count++;
response = retry(chain);
}
}
catch (Exception e){
while (count < maxRetryCount){
count++;
response = retry(chain);
}
}
return response;
}
}

@ -0,0 +1,50 @@
package weaver.interfaces.dito.wait;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.util.HashMap;
import java.util.Map;
public class RequestWaitNodeUtil {
public void isWaitNode(String requestid) {
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByReject");
Map<String,String> baseMap = queryRequestBaseByRequestid(requestid);
}
public Map<String,String> queryRequestBaseByRequestid(String requestid){
RecordSet rs = new RecordSet();
Map<String,String> baseMap = new HashMap<String,String>();
String requestname = "";
String currentnodeid = "";
String currentnodetype = "";
try{
String sql =" select t1.requestname,t1.currentnodetype,t1.currentnodeid" +
" from workflow_requestbase t1\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
currentnodeid = Util.null2String(rs.getString("currentnodeid")) ;
currentnodetype = Util.null2String(rs.getString("currentnodetype")) ;
baseMap.put("requestname",requestname);
baseMap.put("currentnodeid",currentnodeid);
baseMap.put("currentnodetype",currentnodetype);
baseMap.put("requestid",requestid);
}
}catch (Exception e){
}
return baseMap;
}
}
Loading…
Cancel
Save