#EC_HJ158# 最新的代码

main
shilei 3 months ago
parent a84f700f50
commit ce3ab7e749

Binary file not shown.

@ -0,0 +1,10 @@
package com.api.dito.hrm;
import com.engine.dito.hrm.HrmConvertAction;
import javax.ws.rs.Path;
@Path("/dito/hrmconvert")
public class HrmConvertActionApi extends HrmConvertAction {
}

@ -0,0 +1,224 @@
package com.customization.dito.at;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import com.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command;
import com.engine.workflow.cmd.requestForm.ForwardSubmitCmd;
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.file.FileUpload;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
*
* @author wangj
* @version 1.00
* @Date 2022/10/11
*/
@CommandDynamicProxy(target = ForwardSubmitCmd.class, desc = "流程转发、转办、意见征询等提交后推送消息卡片")
public class SendForword2CurrentOperatorCmd extends AbstractCommandProxy<Map<String, Object>> {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
@Override
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
//获取到被代理对象
ForwardSubmitCmd forwardSubmitCmd = (ForwardSubmitCmd) targetCommand;
//获取被代理对象的参数
//对参数做预处理
BaseBean bb = new BaseBean();
bb.writeLog("-----------SendForword2CurrentOperatorCmd------start--");
HttpServletRequest request = forwardSubmitCmd.getRequest();
FileUpload fu = new FileUpload(request);
String requestid = Util.null2String(fu.getParameter("requestid"));
String nodeid = Util.null2String(fu.getParameter("nodeid"));
String workflowid = Util.null2String(fu.getParameter("workflowid"));
String f_weaver_belongto_userid = Util.null2String(fu.getParameter("f_weaver_belongto_userid"));
String f_weaver_belongto_usertype = Util.null2String(fu.getParameter("f_weaver_belongto_usertype"));
User user = forwardSubmitCmd.getUser();
String agentType = Util.null2String(fu.getParameter("agentType"));
String agentorByAgentId = Util.null2String(fu.getParameter("agentorByAgentId"));
String remark = Util.null2String(fu.getParameter("remark"));
// 2 征求意见3 转办 1 转发; 5 征询转办
int forwardflag = Util.getIntValue(fu.getParameter("forwardflag"));
bb.writeLog("SendForword2CurrentOperatorCmd-requestid:"+requestid);
bb.writeLog("SendForword2CurrentOperatorCmd-nodeid:"+nodeid);
bb.writeLog("SendForword2CurrentOperatorCmd-workflowid:"+workflowid);
bb.writeLog("SendForword2CurrentOperatorCmd-remark:"+remark);
//参数回写
//执行标准的业务处理
Map<String, Object> result = nextExecute(targetCommand);
sendDate(result,workflowid,requestid,nodeid,agentType,agentorByAgentId,remark,forwardflag,user);
bb.writeLog("-----------SendForword2CurrentOperatorCmd------end--");
return result;
}
public void sendDate(Map<String, Object> result, String workflowid, String requestid, String nodeid, String agentType, String agentorByAgentId, String remark, int forwardflag,User user) {
BaseBean bb = new BaseBean();
boolean status = (boolean) result.get("success");
bb.writeLog("-----------SendForword2CurrentOperatorCmd------status:"+status);
if (status) {
bb.writeLog("-----------SendForword2CurrentOperatorCmd------forwardflag:"+forwardflag);
if(forwardflag == 1){
insertAt2CurrentOperatorByForward(requestid,remark);
}
}
}
public void insertAt2CurrentOperatorByForward(String requestid,String remark) {
BaseBean bb = new BaseBean();
try{
bb.writeLog("SendForword2CurrentOperatorCmd-remark:"+remark);
List<String> result = new ArrayList<String>();
if(org.apache.commons.lang3.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);
}
}
}
if(result.size() > 0){
Map<String,String> baseMap = queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
insertCurrentOperator(requestid,result,currentNodeId);
}
}catch (Exception e){
e.printStackTrace();
}
}
public void insertCurrentOperator(String requestid, List<String> addUsers, String currentNodeId) {
BaseBean bb = new BaseBean();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String receivedate = simpleDateFormat.format(date);
String receivetime = simpleDateFormat1.format(date);
int showOrder = 0;
RecordSet rs = new RecordSet();
int groupid = 0 ;
String workflowid = "";
String workflowtype = "";
String needwfback = "";
rs.executeQuery(" select requestid,userid,groupid,workflowid,workflowtype,usertype,nodeid,agentorbyagentid,agenttype,showorder,receivedate,receivetime," +
" viewtype,iscomplete,islasttimes,groupdetailid,needwfback,isremark,preisremark,multiTakLevel " +
" from workflow_currentoperator where requestid=? and nodeid=? order by groupid desc", requestid, currentNodeId);
if (rs.next()) {
groupid = Util.getIntValue(rs.getString("groupid"));
workflowid = rs.getString("workflowid");
workflowtype = rs.getString("workflowtype") ;
needwfback = rs.getString("needwfback");
}
bb.writeLog("workflowid:"+workflowid);
ArrayList<List> lists = new ArrayList<>();
for (String addUser : addUsers) {
bb.writeLog("addUser:"+addUser);
if(StringUtils.isNotBlank(addUser)){
String islasttimes = "";
String sql = " select islasttimes from workflow_currentoperator where requestid = "+requestid+" and nodeid = "+currentNodeId +" and userid = "+addUser;
rs.executeQuery(sql);
if(rs.next()){
islasttimes = Util.null2String(rs.getString("islasttimes"));
}
bb.writeLog("islasttimes:"+islasttimes);
if(StringUtils.isBlank(islasttimes)){
islasttimes = "1";
}else{
islasttimes = "0";
}
groupid++;
String userIdTemp = addUser;
String agentorbyagentid = "-1";
String agenttype = "0";
showOrder = rs.getInt("showorder") + 1;
ArrayList list = new ArrayList();
list.add(requestid);
list.add(userIdTemp);
list.add(groupid);
list.add(workflowid);
list.add(workflowtype);
list.add(0);
list.add(currentNodeId);
list.add(agentorbyagentid);
list.add(agenttype);
list.add(showOrder);
list.add(receivedate);
list.add(receivetime);
list.add(0);
list.add(0);
list.add(islasttimes);
list.add(0);
list.add(needwfback);
list.add("8");
list.add("18");
lists.add(list);
}
}
boolean isTrue = rs.executeBatchSql(" insert into workflow_currentoperator(requestid,userid,groupid,workflowid,workflowtype,usertype,nodeid,agentorbyagentid,agenttype,showorder,receivedate,receivetime,viewtype,iscomplete,islasttimes,groupdetailid,needwfback,isremark,preisremark) " +
" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", lists);
bb.writeLog("isTrue:"+isTrue);
}
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;
}
}

@ -0,0 +1,212 @@
package com.customization.dito.at;
import com.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command;
import com.engine.workflow.cmd.requestForm.RequestWithdrawCmd;
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 javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.*;
/***
*
*/
@CommandDynamicProxy(target = RequestWithdrawCmd.class, desc="流程撤回后给门户发送代办消息")
public class SendWithdRaw2CurrentOperatorCmd extends AbstractCommandProxy<Map<String,Object>> {
@Override
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
//获取到被代理对象
RequestWithdrawCmd requestWithdrawCmd = (RequestWithdrawCmd)targetCommand;
//获取被代理对象的参数
//对参数做预处理
BaseBean bb = new BaseBean();
HttpServletRequest request = requestWithdrawCmd.getRequest();
String requestid = Util.null2String(request.getParameter("requestid")).trim();
String workflowid = Util.null2String(request.getParameter("workflowid")).trim();
String actionType = Util.null2String(request.getParameter("actionType")).trim();
String recallnodeid = Util.null2String(request.getParameter("recallNodeId"));
String remark = Util.null2String(request.getParameter("remark"));
User user = requestWithdrawCmd.getUser();
bb.writeLog("requestid:"+requestid);
bb.writeLog("workflowid:"+workflowid);
bb.writeLog("actionType:"+actionType);
bb.writeLog("recallnodeid:"+recallnodeid);
bb.writeLog("remark:"+remark);
//参数回写
//执行标准的业务处理
Map<String, Object> resultMap = nextExecute(targetCommand);
sendDate(resultMap,actionType,requestid,remark);
return resultMap;
}
public void sendDate(Map<String, Object> resultMap, String actionType, String requestid, String remark) {
BaseBean bb = new BaseBean();
bb.writeLog("SendWithdRaw2CurrentOperatorCmd--sendDate");
try{
String result = Util.null2String(resultMap.get("result"));
bb.writeLog("SendWithdRaw2CurrentOperatorCmd--result:"+result);
if("success".equals(result) && "submit".equals(actionType)){
insertAt2CurrentOperatorByForward(requestid,remark);
}
}catch (Exception e){
bb.writeLog("e:"+e);
}
}
public void insertAt2CurrentOperatorByForward(String requestid,String remark) {
BaseBean bb = new BaseBean();
try{
bb.writeLog("SendForword2CurrentOperatorCmd-remark:"+remark);
List<String> result = new ArrayList<String>();
if(org.apache.commons.lang3.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);
}
}
}
if(result.size() > 0){
Map<String,String> baseMap = queryRequestBaseByRequestid(requestid);
String currentNodeId = baseMap.get("currentnodeid");
insertCurrentOperator(requestid,result,currentNodeId);
}
}catch (Exception e){
e.printStackTrace();
}
}
public void insertCurrentOperator(String requestid, List<String> addUsers, String currentNodeId) {
BaseBean bb = new BaseBean();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String receivedate = simpleDateFormat.format(date);
String receivetime = simpleDateFormat1.format(date);
int showOrder = 0;
RecordSet rs = new RecordSet();
int groupid = 0 ;
String workflowid = "";
String workflowtype = "";
String needwfback = "";
rs.executeQuery(" select requestid,userid,groupid,workflowid,workflowtype,usertype,nodeid,agentorbyagentid,agenttype,showorder,receivedate,receivetime," +
" viewtype,iscomplete,islasttimes,groupdetailid,needwfback,isremark,preisremark,multiTakLevel " +
" from workflow_currentoperator where requestid=? and nodeid=? order by groupid desc", requestid, currentNodeId);
if (rs.next()) {
groupid = Util.getIntValue(rs.getString("groupid"));
workflowid = rs.getString("workflowid");
workflowtype = rs.getString("workflowtype") ;
needwfback = rs.getString("needwfback");
}
bb.writeLog("workflowid:"+workflowid);
ArrayList<List> lists = new ArrayList<>();
for (String addUser : addUsers) {
bb.writeLog("addUser:"+addUser);
if(StringUtils.isNotBlank(addUser)){
String islasttimes = "";
String sql = " select islasttimes from workflow_currentoperator where requestid = "+requestid+" and nodeid = "+currentNodeId +" and userid = "+addUser;
rs.executeQuery(sql);
if(rs.next()){
islasttimes = Util.null2String(rs.getString("islasttimes"));
}
bb.writeLog("islasttimes:"+islasttimes);
if(StringUtils.isBlank(islasttimes)){
islasttimes = "1";
}else{
islasttimes = "0";
}
groupid++;
String userIdTemp = addUser;
String agentorbyagentid = "-1";
String agenttype = "0";
showOrder = rs.getInt("showorder") + 1;
ArrayList list = new ArrayList();
list.add(requestid);
list.add(userIdTemp);
list.add(groupid);
list.add(workflowid);
list.add(workflowtype);
list.add(0);
list.add(currentNodeId);
list.add(agentorbyagentid);
list.add(agenttype);
list.add(showOrder);
list.add(receivedate);
list.add(receivetime);
list.add(0);
list.add(0);
list.add(islasttimes);
list.add(0);
list.add(needwfback);
list.add("8");
list.add("18");
lists.add(list);
}
}
boolean isTrue = rs.executeBatchSql(" insert into workflow_currentoperator(requestid,userid,groupid,workflowid,workflowtype,usertype,nodeid,agentorbyagentid,agenttype,showorder,receivedate,receivetime,viewtype,iscomplete,islasttimes,groupdetailid,needwfback,isremark,preisremark) " +
" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", lists);
bb.writeLog("isTrue:"+isTrue);
}
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;
}
}

@ -0,0 +1,80 @@
package com.customization.dito.batch;
import com.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command;
import com.engine.workflow.cmd.requestForm.ForwardSubmitCmd;
import weaver.file.FileUpload;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.card.SendRemarkToCardUtil;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
*
*
* @author wangj
* @version 1.00
* @Date 2022/10/11
*/
@CommandDynamicProxy(target = ForwardSubmitCmd.class, desc = "流程转发、转办、意见征询等提交后推送消息卡片")
public class BatchRequestSubmitSendPortalCmd extends AbstractCommandProxy<Map<String, Object>> {
@Override
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
//获取到被代理对象
ForwardSubmitCmd forwardSubmitCmd = (ForwardSubmitCmd) targetCommand;
//获取被代理对象的参数
//对参数做预处理
BaseBean bb = new BaseBean();
bb.writeLog("-----------SendRemark2CardCmd------start--");
HttpServletRequest request = forwardSubmitCmd.getRequest();
FileUpload fu = new FileUpload(request);
String requestid = Util.null2String(fu.getParameter("requestid"));
String nodeid = Util.null2String(fu.getParameter("nodeid"));
String workflowid = Util.null2String(fu.getParameter("workflowid"));
String f_weaver_belongto_userid = Util.null2String(fu.getParameter("f_weaver_belongto_userid"));
String f_weaver_belongto_usertype = Util.null2String(fu.getParameter("f_weaver_belongto_usertype"));
User user = forwardSubmitCmd.getUser();
String agentType = Util.null2String(fu.getParameter("agentType"));
String agentorByAgentId = Util.null2String(fu.getParameter("agentorByAgentId"));
String remark = Util.null2String(fu.getParameter("remark"));
// 2 征求意见3 转办 1 转发; 5 征询转办
int forwardflag = Util.getIntValue(fu.getParameter("forwardflag"));
bb.writeLog("SendRemark2CardCmd-requestid:"+requestid);
bb.writeLog("SendRemark2CardCmd-nodeid:"+nodeid);
bb.writeLog("SendRemark2CardCmd-workflowid:"+workflowid);
bb.writeLog("SendRemark2CardCmd-remark:"+remark);
//参数回写
//执行标准的业务处理
Map<String, Object> result = nextExecute(targetCommand);
sendDate(result,workflowid,requestid,nodeid,agentType,agentorByAgentId,remark,forwardflag,user);
bb.writeLog("-----------SendRemark2CardCmd------end--");
return result;
}
public void sendDate(Map<String, Object> result, String workflowid, String requestid, String nodeid, String agentType, String agentorByAgentId, String remark, int forwardflag,User user) {
BaseBean bb = new BaseBean();
boolean status = (boolean) result.get("success");
bb.writeLog("-----------SendRemark2CardCmd------status:"+status);
if (status) {
bb.writeLog("-----------SendRemark2CardCmd------forwardflag:"+forwardflag);
if(forwardflag == 3){
SendRemarkToCardUtil sendRemarkToCardUtil = new SendRemarkToCardUtil();
// sendRemarkToCardUtil.sendRequestRemarkToCard(requestid,workflowid,remark);
}
}
}
}

@ -0,0 +1,79 @@
package com.customization.dito.card;
import com.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command;
import com.engine.workflow.cmd.requestForm.ForwardSubmitCmd;
import weaver.file.FileUpload;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.card.SendRemarkToCardUtil;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
*
*
* @author wangj
* @version 1.00
* @Date 2022/10/11
*/
@CommandDynamicProxy(target = ForwardSubmitCmd.class, desc = "流程转发、转办、意见征询等提交后推送消息卡片")
public class SendRemark2CardCmd extends AbstractCommandProxy<Map<String, Object>> {
@Override
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
//获取到被代理对象
ForwardSubmitCmd forwardSubmitCmd = (ForwardSubmitCmd) targetCommand;
//获取被代理对象的参数
//对参数做预处理
BaseBean bb = new BaseBean();
bb.writeLog("-----------SendRemark2CardCmd------start--");
HttpServletRequest request = forwardSubmitCmd.getRequest();
FileUpload fu = new FileUpload(request);
String requestid = Util.null2String(fu.getParameter("requestid"));
String nodeid = Util.null2String(fu.getParameter("nodeid"));
String workflowid = Util.null2String(fu.getParameter("workflowid"));
String f_weaver_belongto_userid = Util.null2String(fu.getParameter("f_weaver_belongto_userid"));
String f_weaver_belongto_usertype = Util.null2String(fu.getParameter("f_weaver_belongto_usertype"));
User user = forwardSubmitCmd.getUser();
String agentType = Util.null2String(fu.getParameter("agentType"));
String agentorByAgentId = Util.null2String(fu.getParameter("agentorByAgentId"));
String remark = Util.null2String(fu.getParameter("remark"));
// 2 征求意见3 转办 1 转发; 5 征询转办
int forwardflag = Util.getIntValue(fu.getParameter("forwardflag"));
bb.writeLog("SendRemark2CardCmd-requestid:"+requestid);
bb.writeLog("SendRemark2CardCmd-nodeid:"+nodeid);
bb.writeLog("SendRemark2CardCmd-workflowid:"+workflowid);
bb.writeLog("SendRemark2CardCmd-remark:"+remark);
//参数回写
//执行标准的业务处理
Map<String, Object> result = nextExecute(targetCommand);
sendDate(result,workflowid,requestid,nodeid,agentType,agentorByAgentId,remark,forwardflag,user);
bb.writeLog("-----------SendRemark2CardCmd------end--");
return result;
}
public void sendDate(Map<String, Object> result, String workflowid, String requestid, String nodeid, String agentType, String agentorByAgentId, String remark, int forwardflag,User user) {
BaseBean bb = new BaseBean();
boolean status = (boolean) result.get("success");
bb.writeLog("-----------SendRemark2CardCmd------status:"+status);
if (status) {
bb.writeLog("-----------SendRemark2CardCmd------forwardflag:"+forwardflag);
if(forwardflag == 3 || forwardflag == 2 || forwardflag == 1){
SendRemarkToCardUtil sendRemarkToCardUtil = new SendRemarkToCardUtil();
sendRemarkToCardUtil.sendRequestRemarkToCard(requestid,workflowid,remark,user);
}
}
}
}

@ -0,0 +1,172 @@
package com.customization.dito.card;
import com.customization.wfTodoCard.service.CheckSendCardService;
import com.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command;
import com.engine.workflow.cmd.requestForm.RequestSubmitCmd;
import com.engine.workflow.entity.requestForm.RequestOperationResultBean;
import 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 weaver.interfaces.dito.card.SendRequestToCardUtil;
import weaver.workflow.request.RequestSignRelevanceWithMe;
import javax.servlet.http.HttpServletRequest;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/***
*
*/
@CommandDynamicProxy(target = RequestSubmitCmd.class, desc="流程提交后给门户卡片发送卡片信息")
public class SendRequest2CardCmd extends AbstractCommandProxy<Map<String,Object>> {
@Override
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
RequestSubmitCmd requestSubmitCmd = (RequestSubmitCmd)targetCommand;
BaseBean bb = new BaseBean();
HttpServletRequest request = requestSubmitCmd.getRequest();
String requestid = Util.null2String(request.getParameter("requestid")).trim();
String workflowid = Util.null2String(request.getParameter("workflowid")).trim();
String src = Util.null2String(request.getParameter("src")).trim();
String nodeid = Util.null2String(request.getParameter("nodeid"));
String workflowname = Util.null2String(request.getParameter("workflowname"));
String remark = Util.null2String(request.getParameter("remark"));
/***
* :
* 1:
* 2:
*/
String agentType = Util.null2String(request.getParameter("agentType"));
String f_weaver_belongto_userid = Util.null2String(request.getParameter("f_weaver_belongto_userid"));
String f_weaver_belongto_usertype = Util.null2String(request.getParameter("f_weaver_belongto_usertype"));
String creater = Util.null2String(request.getParameter("creater"));
String intervenorid = Util.null2String(request.getParameter("Intervenorid"));
String agentorByAgentId = Util.null2String(request.getParameter("agentorByAgentId"));
String isSelectValue = Util.null2String(request.getParameter("isSelectValue"));
User user = requestSubmitCmd.getUser();
String userid = user.getUID()+"";
bb.writeLog("SendRequest2CardCmd-requestid:"+requestid);
bb.writeLog("SendRequest2CardCmd-workflowid:"+workflowid);
bb.writeLog("SendRequest2CardCmd-src:"+src);
bb.writeLog("SendRequest2CardCmd-nodeid:"+nodeid);
bb.writeLog("SendRequest2CardCmd-workflowname:"+workflowname);
bb.writeLog("SendRequest2CardCmd-user:"+user.getLoginid());
bb.writeLog("SendRequest2CardCmd-f_weaver_belongto_userid:"+f_weaver_belongto_userid);
bb.writeLog("SendRequest2CardCmd-f_weaver_belongto_usertype:"+f_weaver_belongto_usertype);
bb.writeLog("SendRequest2CardCmd-creater:"+creater);
bb.writeLog("SendRequest2CardCmd-agentType:"+agentType);
bb.writeLog("SendRequest2CardCmd-intervenorid:"+intervenorid);
bb.writeLog("SendRequest2CardCmd-agentorByAgentId:"+agentorByAgentId);
bb.writeLog("SendRequest2CardCmd-remark:"+remark);
bb.writeLog("SendRequest2CardCmd-isSelectValue:"+isSelectValue);
//执行标准的业务处理
Map<String, Object> result = nextExecute(targetCommand);
bb.writeLog("SendRequest2CardCmd-submit-end:"+requestid+" time:"+System.currentTimeMillis());
sendDate(result,requestid,agentType,src,nodeid,userid,f_weaver_belongto_userid,user,workflowid,remark,isSelectValue);
return result;
}
/***
*
* @param result
* @param requestid
* @param agentType
* @param src
* @param nodeid
* @param userid
* @param f_weaver_belongto_userid
* @param user
*/
public void sendDate(Map<String, Object> result,String requestid,String agentType,String src,String nodeid,String userid,String f_weaver_belongto_userid,User user,String workflowId,String remark,String isSelectValue){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
try{
if(result.containsKey("data")){
//对返回值做加工处理
RequestOperationResultBean resultBean = (RequestOperationResultBean) result.get("data");
String executeResult = resultBean.getType().name();
bb.writeLog("SendRequest2CardCmd-executeResult:"+executeResult);
String new_requestid2 = Util.null2String(resultBean.getResultInfo().get("requestid"));
bb.writeLog("SendRequest2CardCmd-new_requestid2:"+new_requestid2);
if("SUCCESS".equals(executeResult)){
String new_requestid = Util.null2String(resultBean.getResultInfo().get("requestid"));
bb.writeLog("SendRequest2CardCmd-new_requestid:"+new_requestid);
// if ("1".equals(isSelectValue) && null != remark && !"".equals(remark)) {
// Document doc = Jsoup.parse(remark);
// // 选择所有的 <p> 标签
// Elements pTags = doc.select("p");
//
// String title = "";
// Iterator<Element> pIt = pTags.iterator();
// while(pIt.hasNext()) {
// Element element = pIt.next();
// title += element.text();
// }
//
// new BaseBean().writeLog("sendDate-title:" + title);
// if(StringUtils.isNotBlank(title)){
// title = StringEscapeUtils.unescapeHtml4(title);
// }
// new BaseBean().writeLog("sendDate-title2:" + title);
//
// RequestSignRelevanceWithMe reqsignwm = new RequestSignRelevanceWithMe();
// List<String> atResourceids = reqsignwm.parseRemark(remark);
// for (String atResourceid : atResourceids) {
// new BaseBean().writeLog("RequestSubmitCmd-atResourceid:" + atResourceid);
// new CheckSendCardService().sendShareCard(""+user.getUID(), atResourceid, String.valueOf(requestid),"",title,"You have been tagged in a comment.");
// }
// }
String isMessageRemind = "";
String sql1 = "select id,workflowname, isMessageRemind,icon from workflow_base where id='" + workflowId + "'";
bb.writeLog("SendRequest2CardCmd-sql1:"+sql1);
rs.executeQuery(sql1);
if(rs.next()){
isMessageRemind = rs.getString("isMessageRemind");
}
bb.writeLog("SendRequest2CardCmd-isMessageRemind:"+isMessageRemind);
if("1".equals(isMessageRemind)){
if ("1".equals(isSelectValue) && null != remark && !"".equals(remark)) {
SendRequestToCardUtil sendRequestToCardUtil = new SendRequestToCardUtil();
if(Util.getIntValue(requestid) == -1 && "submit".equals(src)){
sendRequestToCardUtil.sendRequestAtToCard(new_requestid,user,nodeid,workflowId,remark);
}else if(Util.getIntValue(requestid)> 0 && "submit".equals(src)){
sendRequestToCardUtil.sendRequestAtToCard(requestid,user,nodeid,workflowId,remark);
}else if(Util.getIntValue(requestid)> 0 && "reject".equals(src)){
sendRequestToCardUtil.sendRequestAtToCard(requestid,user,nodeid,workflowId,remark);
}
}
}
}
}
}catch (Exception e){
bb.writeLog("e:"+e);
}
}
}

@ -0,0 +1,180 @@
package com.customization.dito.sendtodo;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.dito.comInfo.PropBean;
import java.util.HashMap;
import java.util.Map;
public class RequestBaseInfoUtil {
public Map<String,String> queryRequestBaseByRequestid(String requestid){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
Map<String,String> baseMap = new HashMap<String,String>();
String workflowname = "";
String requestname = "";
String currentnodeid = "";
String currentnodename = "" ;
String createrloginid = "";
String createruserid = "";
String createrusername = "";
String currentnodetype = "";
try{
String sql =" select t1.requestname,t1.currentnodetype,t1.currentnodeid,h2.id as createruserid,h2.lastname as createrusername,h2.loginid as createrloginid,d1.nodename as currentnodename,t3.workflowname" +
" 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 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 ;
rs.executeQuery(sql);
if (rs.next()){
workflowname = Util.null2String(rs.getString("workflowname")) ;
requestname = Util.null2String(rs.getString("requestname")) ;
currentnodeid = Util.null2String(rs.getString("currentnodeid")) ;
currentnodename = Util.null2String(rs.getString("currentnodename")) ;
createrloginid = Util.null2String(rs.getString("createrloginid")) ;
createruserid = Util.null2String(rs.getString("createruserid")) ;
createrusername = Util.null2String(rs.getString("createrusername")) ;
currentnodetype = Util.null2String(rs.getString("currentnodetype")) ;
baseMap.put("workflowname",workflowname);
baseMap.put("requestname",requestname);
baseMap.put("currentnodeid",currentnodeid);
baseMap.put("currentnodename",currentnodename);
baseMap.put("createrloginid",createrloginid);
baseMap.put("createruserid",createruserid);
baseMap.put("createrusername",createrusername);
baseMap.put("currentnodetype",currentnodetype);
baseMap.put("requestid",requestid);
}
}catch (Exception e){
}
return baseMap;
}
public int getTodoCountByRequestNode(String requestid,String nodeid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
int count = 0;
try{
String countSql = " select t2.userid\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11'))\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid+
" and t2.nodeid = " + nodeid ;
bb.writeLog("sendTodoDataByNode--countSql:"+countSql);
rs.executeQuery(countSql);
while (rs.next()){
count++;
}
}catch (Exception e){
}
return count;
}
public String getUserStaffid(String userid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String staffId = "";
try {
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String userSql = " select "+cus_staff+" as staffid from cus_fielddata where scopeid="+scopeid+" and scope='"+scope+"' and id=?";
rs.executeQuery(userSql,userid);
if (rs.next()){
staffId = Util.null2String(rs.getString("staffid"));
}
}catch (Exception e){
}
return staffId;
}
public String getRemark89Sql(String requestid){
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 ;
return sql;
}
public String getTodoSql(String requestid){
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String 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;
return sql;
}
public int getTodoCountByRequestid(String requestid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
int count = 0;
try{
String countSql = " select t2.userid\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11'))\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
bb.writeLog("sendTodoDataByNode--countSql:"+countSql);
rs.executeQuery(countSql);
while (rs.next()){
count++;
}
}catch (Exception e){
}
return count;
}
}

@ -9,9 +9,7 @@ import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
@ -25,6 +23,8 @@ import java.util.Map;
*/
public class SendPortalAtAddTodoCmd {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
private Map<String,Object> params;
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
@ -54,25 +54,18 @@ public class SendPortalAtAddTodoCmd {
public void sendTodoDataByNode(String requestid, List<Map<String,Object>> todolist, String username, String passwd, String center, String portal_todourl, String bpm_workflowurl, String bpm_app_workflowurl, String bpm_app_requesturl){
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String zhjkbs = "com.customization.dito.sendtodo.SendPortalAtAddTodoCmd.sendTodoDataByNode";
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
JSONObject requestObject = new JSONObject();
RecordSet rs = new RecordSet();
String notes = "at后创建门户的待阅数据";
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
BaseBean bb = new BaseBean();
bb.writeLog("SendPortalAtAddTodoCmd--sendTodoDataByNode");
String terminal = "1" ;
String taskType = "0";
String actionType = "0" ;
try {
bb.writeLog("SendPortalAtAddTodoCmd sleep start");
Thread.sleep(2000);
bb.writeLog("sleep end ");
String sql = "";
bb.writeLog("SendPortalAtAddTodoCmd sleep end ");
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
@ -81,119 +74,128 @@ public class SendPortalAtAddTodoCmd {
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
bb.writeLog("urlDing", urlDing);
// String requestname = "" ;
// String workflowname = "" ;
// String nodeId = "" ;
// String nodeName = "" ;
// String lastName = "";
// 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 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("sendTodoDataByNode--sql2:"+sql);
//
// rs.executeQuery(sql);
// if (rs.next()){
// requestname = Util.null2String(rs.getString("requestname")) ;
// workflowname = Util.null2String(rs.getString("workflowname")) ;
// nodeId = Util.null2String(rs.getString("nodeid")) ;
// nodeName = Util.null2String(rs.getString("nodeName")) ;
// lastName = Util.null2String(rs.getString("loginid")) ;
// }
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",getShortMessageTitle(requestname));
// requestObject.put("terminal",terminal);
// requestObject.put("urlPc",urlPc);
// requestObject.put("urlApp",urlApp);
// requestObject.put("urlDing",urlDing);
String requestname = "" ;
String workflowname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String lastName = "";
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("sendTodoDataByNode--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
nodeId = Util.null2String(rs.getString("nodeid")) ;
nodeName = Util.null2String(rs.getString("nodeName")) ;
lastName = Util.null2String(rs.getString("loginid")) ;
}
requestObject.put("center",center);
requestObject.put("title",requestname);
requestObject.put("creator",lastName);
// requestObject.put("taskCode","weaver"+requestid);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",workflowname);
JSONArray taskObjectList = new JSONArray();
for (Map<String,Object> todoMap: todolist){
bb.writeLog("================== SendPortalAtAddTodoCmd todoMap============== "+ todoMap);
JSONObject taskObject = new JSONObject();
JSONArray list = new JSONArray();
JSONObject requestObject2 = new JSONObject();
requestObject2.putAll(requestObject);
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
requestObject2.put("nodeName",todoMap.get("nodename"));
requestObject2.put("nodeId",todoMap.get("nodeid"));
requestObject2.put("taskCode","weaver"+requestid+"_at_"+todoMap.get("id"));
String creator = (String) todoMap.get("loginid");
if("sysadmin".equals(creator)){
creator = "Admin";
}
String userid = Util.null2String(todoMap.get("id")) ;
String creator = Util.null2String(todoMap.get("loginid"));
JSONArray taskObjectList = new JSONArray();
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction","0");
taskObject.put("objectType","0");
taskObject.put("objectCode",creator);
taskObject.put("objectId",todoMap.get("id"));
taskObject.put("operatorCode",creator);
list.add(taskObject);
requestObject2.put("messageTitle",getShortMessageTitle(requestname));
requestObject2.put("messageContent", requestname);
requestObject2.put("terminal", "1");
requestObject2.put("taskType", "1");
requestObject2.put("actionType", "0");
requestObject2.put("taskObjectList",list);
taskObjectList.add(taskObject);
JSONObject requestObject = new JSONObject();
String nodeId = Util.null2String(todoMap.get("nodename"));
String nodeName = Util.null2String(todoMap.get("nodename"));
requestObject.put("nodeName",todoMap.get("nodename"));
requestObject.put("nodeId",todoMap.get("nodeid"));
requestObject.put("taskCode","weaver"+requestid+"_at_"+todoMap.get("id"));
requestObject.put("terminal", "1");
requestObject.put("taskType", "1");
requestObject.put("actionType", "0");
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("ticketType",workflowname);
requestObject.put("center",center);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd;
bb.writeLog("SendPortalToReadUtil--requestObject:" + requestObject2.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl, requestObject2.toJSONString(), auth);
bb.writeLog("SendPortalToReadUtil--requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl, requestObject.toJSONString(), auth);
bb.writeLog("SendPortalToReadUtil-msgdata:" + msgdata);
if (!"".equals(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
//{"resultCode":"1","resultMsg":"No Result"}
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName, "",requestObject2.toJSONString(),resultCode,"",zhjkbs,(String) todoMap.get("id"));
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName, "",requestObject.toJSONString(),resultCode,"",zhjkbs,userid,notes);
sendPortalErrorUtil.saveAtRyjb(requestid,nodeId,(String) todoMap.get("id"));
}else if ("TODO-FAIL-002".equals(resultCode)){
//The task does not exist.任务不存在,则新增
User user = new User();
user.setUid(Integer.valueOf(todoMap.get("id").toString()));
SendPortalToReadUtil sendPortalToReadUtil = new SendPortalToReadUtil();
sendPortalToReadUtil.sendToReadDataByCreateNode(requestid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
}else{
}
// else if ("TODO-FAIL-002".equals(resultCode)){
// //The task does not exist.任务不存在,则新增
// User user = new User();
// user.setUid(Integer.valueOf(todoMap.get("id").toString()));
// SendPortalToReadUtil sendPortalToReadUtil = new SendPortalToReadUtil();
// sendPortalToReadUtil.sendToReadDataByCreateNode(requestid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
//
// }
else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName, "",requestObject2.toJSONString(),resultCode,resultmsg,zhjkbs,(String) todoMap.get("id"));
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName, "",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid,notes);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
@ -251,9 +253,9 @@ public class SendPortalAtAddTodoCmd {
try {
String workcode = "";
String sql = " select * from (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) w where w.id = '" + userid + "'";
String sql = " select * from (select id, lastname,loginid from hrmresource union all select id, lastname,loginid from hrmresourcemanager ) w where w.id = '" + userid + "'";
rs.executeQuery(sql);
while (rs.next()) {
if (rs.next()) {
workcode = Util.null2String(rs.getString("loginid"));
}

@ -127,6 +127,8 @@ public class SendPortalErrorUtil {
bb.writeLog("doCreateSendPortalTodoErrorInfo");
String uf_table = "uf_portal_error" ;
// ModeRightInfo modeRightInfo = new ModeRightInfo();
// modeRightInfo.setNewRight(true);
@ -208,8 +210,49 @@ public class SendPortalErrorUtil {
// }
// }
}
insertNewDeleteLog(zhjkbs,mainMap);
}
public void insertNewDeleteLog(String zhjkbs,Map<String,String> mainMap){
if("com.customization.dito.sendtodo.SendPortalTodoUtil.sendTodoDataByCreater".equals(zhjkbs)){
BaseBean bb = new BaseBean();
String saveLogTable = "uf_portal_savelog";
RecordSet rs = new RecordSet();
String formmodeid = "" ;
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = '"+saveLogTable+"' " ;
rs.execute(sql);
if(rs.next()){
formmodeid = Util.null2String(rs.getString("id"));
}
mainMap.put("formmodeid",formmodeid);
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+"'" ;
}
bb.writeLog("tablename:"+tablename);
bb.writeLog("tablenvalue:"+tablenvalue);
if(tablename !="" && tablenvalue !="") {
sql = " insert into " + saveLogTable + "(" + tablename + ") values (" + tablenvalue + ")";
bb.writeLog("sql:" + sql);
boolean boo = rs.execute(sql);
}
}
}
public void saveAtRyjb(String requestid,String nodeid,String userid){
RecordSet rs = new RecordSet();
String uf_table = "uf_lcatryjlb" ;

@ -118,6 +118,11 @@ public class SendPortalErrorUtilRunnable implements Runnable{
sql = " insert into "+uf_table+"("+tablename+") values ("+ tablenvalue +")";
bb.writeLog("sql:"+sql);
boolean boo = rs.execute(sql);
// if(boo)
// {
// String dataid = "" ;
@ -134,6 +139,46 @@ public class SendPortalErrorUtilRunnable implements Runnable{
// }
// }
}
insertNewDeleteLog(zhjkbs,mainMap);
}
public void insertNewDeleteLog(String zhjkbs,Map<String,String> mainMap){
if("weaver.interfaces.dito.monitor.delete.MonitorRequestDeleteSendPortalUtil.monitorDelete4Requestid".equals(zhjkbs)){
BaseBean bb = new BaseBean();
String saveLogTable = "uf_portal_deletelog";
RecordSet rs = new RecordSet();
String formmodeid = "" ;
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = '"+saveLogTable+"' " ;
rs.execute(sql);
if(rs.next()){
formmodeid = Util.null2String(rs.getString("id"));
}
mainMap.put("formmodeid",formmodeid);
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+"'" ;
}
bb.writeLog("tablename:"+tablename);
bb.writeLog("tablenvalue:"+tablenvalue);
if(tablename !="" && tablenvalue !="") {
sql = " insert into " + saveLogTable + "(" + tablename + ") values (" + tablenvalue + ")";
bb.writeLog("sql:" + sql);
boolean boo = rs.execute(sql);
}
}
}
}

@ -27,7 +27,6 @@ import java.util.regex.Pattern;
*/
public class SendPortalForwardCmd {
private Map<String,Object> params;
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
@ -40,13 +39,7 @@ public class SendPortalForwardCmd {
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
public SendPortalForwardCmd(){
}
public SendPortalForwardCmd(Map<String,Object> params){
this.params=params;
}
//转发
public void forwardSendPortal(String requestid,int currentnodeid,User user,Set<String> resourceids) {
@ -89,13 +82,20 @@ public class SendPortalForwardCmd {
String urlDing = replace + bpm_app_requesturl + requestid;
String urlApp = replace + bpm_app_requesturl + requestid;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
try {
if (StringUtils.isNotEmpty(mobileJumpUrl)) {
urlDing += "&returnUrl=" + URLEncoder.encode(mobileJumpUrl, "UTF-8");
urlApp += "&returnUrl=" + URLEncoder.encode(mobileJumpUrl, "UTF-8");
}
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
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" +
" 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;
@ -111,17 +111,12 @@ public class SendPortalForwardCmd {
loginid = Util.null2String(rs.getString("loginid"));
}
if (StringUtils.isNotEmpty(mobileJumpUrl)) {
urlDing += "&returnUrl=" + URLEncoder.encode(mobileJumpUrl, "UTF-8");
urlApp += "&returnUrl=" + URLEncoder.encode(mobileJumpUrl, "UTF-8");
}
JSONArray taskObjectList = new JSONArray();
bb.writeLog("SendPortalForwardCmd urlDing", urlDing);
JSONArray taskObjectList = new JSONArray();
requestObject.put("creator", loginid);
requestObject.put("center", center);
requestObject.put("title", requestname);
requestObject.put("creator", loginid);
requestObject.put("taskCode", "weaver" + requestid+"_zf_"+ userid);
requestObject.put("nodeId", currentnodeid);
requestObject.put("taskType", taskType);
@ -136,7 +131,7 @@ public class SendPortalForwardCmd {
requestObject.put("nodeName", getNodeName(currentnodeid));
requestObject.put("ticketType", workflowname);
sql = " select t2.userid,h1.loginid,h1.email,c1." + cus_staff + " as staffid " +
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 + "' " +
@ -155,11 +150,6 @@ public class SendPortalForwardCmd {
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;
if ("sysadmin".equals(usercode)) {
usercode = "Admin";
}
String objectCode = usercode;
String operatorCode = usercode;
@ -229,7 +219,6 @@ public class SendPortalForwardCmd {
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 cus_staff = PropBean.getUfPropValue("cus_staff") ;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
RecordSet rs = new RecordSet();
@ -241,40 +230,33 @@ public class SendPortalForwardCmd {
String objectAction = "0";
String objectType = "0";
String sql = "";
String workflowname = "";
String nodeId = "";
String nodeName = "";
JSONObject requestObject = new JSONObject();
String urlPc = "[newtab]"+ Constants.bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+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 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");
// }
String msgdata = "";
String requestname = "";
String lastname = "";
String userids = "";
String loginid = "";
String emailArray = "";
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;
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"));
@ -285,17 +267,12 @@ public class SendPortalForwardCmd {
loginid = Util.null2String(rs.getString("loginid"));
}
if (StringUtils.isNotEmpty(mobileJumpUrl)) {
urlDing += "&returnUrl=" + URLEncoder.encode(mobileJumpUrl, "UTF-8");
urlApp += "&returnUrl=" + URLEncoder.encode(mobileJumpUrl, "UTF-8");
}
JSONArray taskObjectList = new JSONArray();
bb.writeLog("SendPortalForwardCmd transfer urlDing", urlDing);
JSONObject requestObject = new JSONObject();
requestObject.put("creator", loginid);
requestObject.put("center", center);
requestObject.put("title", requestname);
requestObject.put("creator", loginid);
requestObject.put("taskCode", "weaver" + requestid);
requestObject.put("nodeId", currentnodeid);
requestObject.put("taskType", taskType);
@ -310,7 +287,9 @@ public class SendPortalForwardCmd {
requestObject.put("nodeName", getNodeName(currentnodeid));
requestObject.put("ticketType", workflowname);
sql = " select t2.userid,h1.loginid,h1.email,c1." + cus_staff + " as staffid " +
String emailArray = "";
JSONArray taskObjectList = new JSONArray();
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 + "' " +
@ -328,12 +307,6 @@ public class SendPortalForwardCmd {
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;
if ("sysadmin".equals(usercode)) {
usercode = "Admin";
}
String objectCode = usercode;
String operatorCode = usercode;
@ -357,16 +330,14 @@ public class SendPortalForwardCmd {
} 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)) {
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
if (StringUtils.isNotEmpty(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)) {
@ -399,7 +370,6 @@ public class SendPortalForwardCmd {
String passwd = PropBean.getUfPropValue("passwd");
String center = PropBean.getUfPropValue("center");
String zhjkbs = "com.customization.dito.sendtodo.SendPortalForwardCmd.delTodoAddDoneSendPortal";
RecordSet rs = new RecordSet();
@ -446,11 +416,10 @@ public class SendPortalForwardCmd {
//删除转发的待办
JSONObject jsonObject = new JSONObject();
jsonObject.put("creator", loginid);
jsonObject.put("center", center);
jsonObject.put("title", requestname);
jsonObject.put("creator", loginid);
jsonObject.put("taskCode", "weaver" + requestid+"_zf_"+user.getUID());
jsonObject.put("taskType", "0");
jsonObject.put("actionType", "3");
jsonObject.put("createDate", processTime);

@ -1,17 +1,23 @@
package com.customization.dito.sendtodo;
import com.alibaba.fastjson.JSONObject;
import com.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command;
import com.engine.workflow.cmd.requestForm.RemarkSubmitCmd;
import com.engine.workflow.entity.requestForm.RequestOperationResultBean;
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.monitor.SendPortalMonitorDeleteUtil;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.constant.Constants;
import weaver.interfaces.dito.remark.UpdateRequestRemarkViewDateRunnable;
import javax.servlet.http.HttpServletRequest;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -46,20 +52,28 @@ public class SendPortalRemarkCmd extends AbstractCommandProxy<Map<String,Object>
bb.writeLog("user:"+user.getLoginid());
bb.writeLog("creater:"+creater);
bb.writeLog("agentType:"+agentType);
bb.writeLog("isremark:"+agentType);
bb.writeLog("isremark:"+isremark);
List<Map<String, String>> remark9List = new ArrayList<Map<String, String>>();
// if("0".equals(isremark) && "save".equals(src)){
// remark9List = queryRequestRemark9(requestid,userid);
// }
if("9".equals(isremark) && "save".equals(src)){
remark9List = queryRequestRemark(requestid,userid);
remark9List = queryRequestRemark9(requestid,userid);
}
bb.writeLog("remark9List2:"+remark9List);
Map<String, Object> result = nextExecute(targetCommand);
sendDate(result,loginid,remark9List);
sendDate(result,loginid,remark9List,userid);
return result;
}
public void sendDate(Map<String, Object> result, String loginid,List<Map<String,String>> remark9List) {
public void sendDate(Map<String, Object> result, String loginid,List<Map<String,String>> remark9List,String userid) {
BaseBean bb = new BaseBean();
bb.writeLog("sendDate");
try {
if (result.containsKey("data")) {
//对返回值做加工处理
@ -68,19 +82,16 @@ public class SendPortalRemarkCmd extends AbstractCommandProxy<Map<String,Object>
bb.writeLog("executeResult:" + executeResult);
if ("SUCCESS".equals(executeResult)) {
bb.writeLog("remark9List3:"+remark9List);
if(!remark9List.isEmpty() && remark9List.size()>0){
bb.writeLog("SendPortalRemarkCmd-remark9List:"+remark9List.size());
SendPortalMonitorDeleteUtil sendPortalMonitorDeleteUtil = new SendPortalMonitorDeleteUtil();
String notes = "流程页面打开后,批注抄送需提交的数据";
sendPortalMonitorDeleteUtil.monitorFinishedWorkflowCopyToByRequestid(remark9List,loginid,notes);
completeRequestRemark9ByRemarkSubmit(remark9List,loginid,notes,userid);
}
}
}
} catch (Exception e) {
}
}
@ -91,12 +102,11 @@ public class SendPortalRemarkCmd extends AbstractCommandProxy<Map<String,Object>
* @param userid
* @return
*/
public List<Map<String, String>> queryRequestRemark(String requestid,String userid){
public List<Map<String, String>> queryRequestRemark9(String requestid,String userid){
List<Map<String, String>> remark9List = new ArrayList<Map<String, String>>();
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
try{
Map<String, String> map = null;
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" +
@ -108,14 +118,15 @@ public class SendPortalRemarkCmd extends AbstractCommandProxy<Map<String,Object>
" and t.userid="+userid+"";
rs.executeQuery(sql);
bb.writeLog("OpenRequestRemark9Cmd-sql:"+sql);
bb.writeLog("queryRequestRemark-sql:"+sql);
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid"));
String nodename = Util.null2String(rs.getString("nodename"));
String workflowname = Util.null2String(rs.getString("workflowname")) ;
String requestname = Util.null2String(rs.getString("requestname")) ;
map = new HashMap<String, String>();
Map<String, String> map = new HashMap<String, String>();
map.put("requestid",requestid);
map.put("userid",userid+"");
map.put("nodeid",nodeid);
@ -125,9 +136,177 @@ public class SendPortalRemarkCmd extends AbstractCommandProxy<Map<String,Object>
map.put("lcid",requestid);
remark9List.add(map);
}
bb.writeLog("remark9List:"+remark9List);
}catch (Exception e){
bb.writeLog("queryRequestRemark-e:"+e);
}
return remark9List;
}
/**
* <>
*
* @param list
* @param loginid
*/
public void completeRequestRemark9ByRemarkSubmit(List<Map<String,String>> list,String loginid,String notes,String currentUserid){
BaseBean bb = new BaseBean();
bb.writeLog("completeRequestRemark9ByRemarkSubmit-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("completeRequestRemark9ByRemarkSubmit-userid:"+userid);
bb.writeLog("completeRequestRemark9ByRemarkSubmit-nodeid:"+nodeid);
bb.writeLog("completeRequestRemark9ByRemarkSubmit-requestid:"+requestid);
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
completeRequestRemark9ByUserid(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes,currentUserid);
}
}
}
/***
*
* @param requestid
* @param userid
* @param nodeid
* @param loginid
* @param workflowname
* @param requestname
* @param nodename
* @param notes
*/
private void completeRequestRemark9ByUserid(String requestid,String userid,String nodeid,String loginid,String workflowname,String requestname,String nodename,String notes,String currentUserid){
BaseBean bb = new BaseBean();
bb.writeLog("completeRequestRemark9ByUserid-requestid:"+requestid);
String zhjkbs = "com.customization.dito.sendtodo.SendPortalRemarkCmd.completeRequestRemark9ByUserid" ;
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");
}
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("monitorFinishedWorkflowCopyToByUserid:sql:"+basesql);
rs.executeQuery(basesql);
if(rs.next()){
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
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("completeRequestRemark9ByUserid-requestObject:"+requestObject.toJSONString());
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("completeRequestRemark9ByUserid-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);
updateCurrentoperatorRemark(requestid,currentUserid,"8,9");
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @param requestid
* @param currentUserid
* @param preisremark
*/
public void updateCurrentoperatorRemark(String requestid,String currentUserid,String preisremark){
BaseBean bb = new BaseBean();
bb.writeLog("updateCurrentoperatorRemark-new-requestid:"+requestid);
// 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="+currentUserid;
// boolean isTrue = rs.executeUpdate(sql);
// bb.writeLog("updateCurrentoperatorRemark-sql:"+sql +" isTrue:"+isTrue);
// }
// }catch (Exception e){
// bb.writeLog("updateCurrentoperatorRemark-e:"+e);
// }
UpdateRequestRemarkViewDateRunnable updateRequestRemarkViewDateRunnable = new UpdateRequestRemarkViewDateRunnable(requestid,currentUserid,preisremark);
new Thread(updateRequestRemarkViewDateRunnable).start();
}
}

@ -21,6 +21,8 @@ public class SendPortalToReadUtil {
//public static String EMAIL_REGEX_DEFAULT = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
/***
*
* @param requestid
@ -38,12 +40,6 @@ public class SendPortalToReadUtil {
bb.writeLog("SendPortalToReadUtil-sendToReadDataByCreateNode");
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
JSONObject requestObject = new JSONObject();
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
String currentUserId = user.getUID()+"" ;
String terminal = "1" ;
@ -51,16 +47,9 @@ public class SendPortalToReadUtil {
String taskType = "1";
String objectAction = "0" ;
String objectType = "0";
String emailArray = "";
try {
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
JSONArray taskObjectList = new JSONArray();
String createrLastname = "";
String createrLoginid = "" ;
String requestname = "";
String workflowname = "" ;
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
@ -71,114 +60,88 @@ public class SendPortalToReadUtil {
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
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 ;
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("sendToReadDataByNode--sql:"+sql);
rs.executeQuery(sql);
if (rs.next()){
workflowname = Util.null2String(rs.getString("workflowname")) ;
requestname = Util.null2String(rs.getString("requestname")) ;
createrLastname = Util.null2String(rs.getString("lastname")) ;
createrLoginid = Util.null2String(rs.getString("loginid")) ;
while (rs.next()){
String nodeid = Util.null2String(rs.getString("nodeid")) ;
String nodename = Util.null2String(rs.getString("nodename")) ;
String email = Util.null2String(rs.getString("email")) ;
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("email",email);
taskObject.put("loginid",loginid);
taskObject.put("staffid",staffid);
taskObject.put("userid",userid);
taskObjectList.add(taskObject);
}
requestObject.put("center",center);
requestObject.put("title",requestname);
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("urlDing",urlDing);
requestObject.put("ticketType",workflowname);
requestObject.put("urlApp",urlApp);
requestObject.put("creator",createrLoginid);
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 ;
bb.writeLog("sendToReadDataByNode--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()){
String lcid = Util.null2String(rs.getString("requestid")) ;
String nodeid = Util.null2String(rs.getString("nodeid")) ;
String nodename = Util.null2String(rs.getString("nodename")) ;
String email = Util.null2String(rs.getString("email")) ;
String staffid = Util.null2String(rs.getString("staffid")) ;
String creator = Util.null2String(rs.getString("loginid")) ;
String userid = Util.null2String(rs.getString("userid")) ;
JSONObject taskObject = new JSONObject();
taskObject.put("lcid",lcid);
taskObject.put("nodeid",nodeid);
taskObject.put("nodename",nodename);
taskObject.put("email",email);
taskObject.put("creator",creator);
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 lcid = dataObject.getString("lcid");
String nodeid = dataObject.getString("nodeid");
String nodename = dataObject.getString("nodename");
String email = dataObject.getString("email");
String creator = dataObject.getString("creator");
if("sysadmin".equals(creator)){
creator = "Admin";
}
String staffid = dataObject.getString("staffid");
String userid = dataObject.getString("userid");
if("sysadmin".equals(creator)){
creator = "Admin";
}
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("nodeName",nodename);
requestObject.put("nodeId",nodeid);
requestObject.put("taskCode", lcid+"_cs_"+userid);
requestObject.put("taskObjectList",taskArray);
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 staffid = dataObject.getString("staffid");
String userid = dataObject.getString("userid");
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);
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)){
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)){
// Matcher matcher = regex.matcher(email);
// if(matcher.matches()){
// emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
@ -192,15 +155,15 @@ public class SendPortalToReadUtil {
// //sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent);
// }
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);
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();
}
@ -212,19 +175,16 @@ public class SendPortalToReadUtil {
*
*
* @param requestid
* @param noideid
* @param prenodeid
* @param user
*/
public void sendToReadDataByNode(String requestid,User user,String noideid,String portal_todourl,String bpm_app_workflowurl,String username,String passwd,String bpm_workflowurl,String center,String bpm_app_requesturl){
public void sendToReadDataByNode(String requestid,User user,String prenodeid,String portal_todourl,String bpm_app_workflowurl,String username,String passwd,String bpm_workflowurl,String center,String bpm_app_requesturl){
String zhjkbs = "com.customization.dito.sendtodo.SendPortalToReadUtil.sendToReadDataByNode" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendMailUtil sendMailUtil = new SendMailUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
@ -232,13 +192,6 @@ public class SendPortalToReadUtil {
String currentUserId = user.getUID()+"" ;
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
JSONObject requestObject = new JSONObject();
String emailArray = "";
String actionType = "2";
String objectAction = "0";
String objectType = "0";
@ -258,94 +211,52 @@ public class SendPortalToReadUtil {
}
bb.writeLog("urlDing", urlDing);
int count = 0 ;
String countSql=" select t2.userid \n" +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5', '7', '11'))\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid+
" and t2.nodeid = " + noideid ;
bb.writeLog("sendToReadDataByNode--countSql:"+countSql);
rs.executeQuery(countSql);
while (rs.next()){
count++;
}
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");
int count = requestBaseInfoUtil.getTodoCountByRequestNode(requestid,prenodeid);
// String countSql=" select t2.userid \n" +
// " from workflow_requestbase t1\n" +
// " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
// " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5', '7', '11'))\n" +
// " and t2.islasttimes = 1\n" +
// " and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid+
// " and t2.nodeid = " + nodeid ;
//
// bb.writeLog("sendToReadDataByNode--countSql:"+countSql);
// rs.executeQuery(countSql);
// while (rs.next()){
// count++;
// }
bb.writeLog("SendPortalToReadUtil-sendToReadDataByNode--count:"+count);
if(count == 0)
{
String workflowname = "" ;
String requestname = "";
String createrLastname = "";
String createrLoginid = "";
JSONArray taskObjectList = new JSONArray();
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("SendPortalToReadUtil-sendToReadDataByNode--sql:" + sql);
rs.executeQuery(sql);
if (rs.next()) {
workflowname = Util.null2String(rs.getString("workflowname"));
requestname = Util.null2String(rs.getString("requestname"));
createrLastname = Util.null2String(rs.getString("lastname")) ;
createrLoginid = Util.null2String(rs.getString("loginid")) ;
}
requestObject.put("center", center);
requestObject.put("title", requestname);
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("urlDing", urlDing);
requestObject.put("ticketType", workflowname);
requestObject.put("creator",createrLoginid);
requestObject.put("urlApp",urlApp);
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 ;
String sql = requestBaseInfoUtil.getRemark89Sql(requestid);
bb.writeLog("SendPortalToReadUtil-sendToReadDataByNode--sql:" + sql);
rs.executeQuery(sql);
while (rs.next()) {
String lcid = Util.null2String(rs.getString("requestid")) ;
String nodeid = Util.null2String(rs.getString("nodeid")) ;
String nodename = Util.null2String(rs.getString("nodename")) ;
String email = Util.null2String(rs.getString("email")) ;
String staffid = Util.null2String(rs.getString("staffid")) ;
String creator = Util.null2String(rs.getString("loginid")) ;
String loginid = Util.null2String(rs.getString("loginid")) ;
String userid = Util.null2String(rs.getString("userid")) ;
JSONObject taskObject = new JSONObject();
taskObject.put("lcid",lcid);
taskObject.put("nodeid",nodeid);
taskObject.put("nodename",nodename);
taskObject.put("email",email);
taskObject.put("creator",creator);
taskObject.put("loginid",loginid);
taskObject.put("staffid",staffid);
taskObject.put("userid",userid);
taskObjectList.add(taskObject);
@ -353,21 +264,15 @@ public class SendPortalToReadUtil {
for (int i = 0; i < taskObjectList.size(); i++) {
JSONObject dataObject = taskObjectList.getJSONObject(i);
String lcid = dataObject.getString("lcid");
String nodeid = dataObject.getString("nodeid");
String nodename = dataObject.getString("nodename");
String email = dataObject.getString("email");
String creator = dataObject.getString("creator");
String loginid = dataObject.getString("loginid");
String userid = dataObject.getString("userid");
if("sysadmin".equals(creator)){
creator = "Admin";
}
String staffid = dataObject.getString("staffid");
JSONObject taskObject = new JSONObject();
String objectCode = creator ;
String operatorCode = creator ;
String staffid = dataObject.getString("staffid");
String objectCode = loginid ;
String operatorCode = loginid ;
taskObject.put("objectAction",objectAction);
taskObject.put("objectType",objectType);
@ -377,9 +282,25 @@ public class SendPortalToReadUtil {
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", lcid+"_cs_"+userid);
requestObject.put("taskCode", requestid+"_cs_"+userid);
requestObject.put("taskObjectList",taskArray);
String auth = username + ":" + passwd;
@ -391,6 +312,7 @@ public class SendPortalToReadUtil {
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
// Matcher matcher = regex.matcher(email);
// if (matcher.matches()) {
// emailArray += StringUtils.isEmpty(emailArray) ? email : "," + email;
@ -420,8 +342,6 @@ public class SendPortalToReadUtil {
}
}
}
}
} catch (Exception e) {
e.printStackTrace();

@ -1,6 +1,5 @@
package com.customization.dito.sendtodo;
import com.engine.workflow.constant.requestForm.RequestExecuteType;
import org.apache.commons.lang3.StringUtils;
import weaver.interfaces.dito.constant.Constants;
import com.customization.dito.sendtodo.agent.SendPortalToReadByAgentUtil;
@ -13,7 +12,11 @@ import com.engine.workflow.entity.requestForm.RequestOperationResultBean;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.monitor.SendPortalMonitorUtil;
import weaver.interfaces.dito.delete.RequestDeleteQueryPortalUtil;
import weaver.interfaces.dito.delete.RequestDeleteSendPortalUtil;
import weaver.interfaces.dito.intervention.RequestInterventionSendPortalUtil;
import weaver.interfaces.dito.intervention.RequestInterventionQueryUtil;
import weaver.interfaces.dito.reject.RequestRejectSendPortalUtil;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
@ -54,6 +57,7 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
String f_weaver_belongto_usertype = Util.null2String(request.getParameter("f_weaver_belongto_usertype"));
String creater = Util.null2String(request.getParameter("creater"));
String intervenorid = Util.null2String(request.getParameter("Intervenorid"));
String agentorByAgentId = Util.null2String(request.getParameter("agentorByAgentId"));
// Map<String,Object> params = ParamUtil.request2Map(request);
@ -78,44 +82,57 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
bb.writeLog("creater:"+creater);
bb.writeLog("agentType:"+agentType);
bb.writeLog("intervenorid:"+intervenorid);
bb.writeLog("agentorByAgentId:"+agentorByAgentId);
List<Map<String,String>> copyList = new ArrayList<Map<String,String>>();
List<Map<String,String>> forwardList = new ArrayList<Map<String,String>>();
List<Map<String,String>> atList = new ArrayList<Map<String,String>>();
List<Map<String,String>> baseList = new ArrayList<Map<String,String>>();
try{
SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
if("intervenor".equals(src)){
if(StringUtils.isNotBlank(intervenorid)){
if("1".equals(agentType)){
copyList = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,intervenorid);
forwardList = sendPortalTodoDeleteUtil.queryWorkflowForwardByRequestid(requestid,intervenorid);
atList = sendPortalTodoDeleteUtil.queryWorkflowAtByRequestid(requestid,intervenorid);
}else{
copyList = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,intervenorid);
forwardList = sendPortalTodoDeleteUtil.queryWorkflowForwardByRequestid(requestid,intervenorid);
atList = sendPortalTodoDeleteUtil.queryWorkflowAtByRequestid(requestid,intervenorid);
}
}else{
copyList = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,userid);
forwardList = sendPortalTodoDeleteUtil.queryWorkflowForwardByRequestid(requestid,userid);
atList = sendPortalTodoDeleteUtil.queryWorkflowAtByRequestid(requestid,userid);
}
}else if("delete".equals(src)){
if("1".equals(agentType)){
copyList = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,"");
forwardList = sendPortalTodoDeleteUtil.queryWorkflowForwardByRequestid(requestid,"");
atList = sendPortalTodoDeleteUtil.queryWorkflowAtByRequestid(requestid,"");
}else{
copyList = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,"");
forwardList = sendPortalTodoDeleteUtil.queryWorkflowForwardByRequestid(requestid,"");
atList = sendPortalTodoDeleteUtil.queryWorkflowAtByRequestid(requestid,"");
}
if("delete".equals(src)){
bb.writeLog("RequestDeleteQueryPortalUtil");
RequestDeleteQueryPortalUtil requestDeleteQueryPortalUtil = new RequestDeleteQueryPortalUtil();
copyList = requestDeleteQueryPortalUtil.queryRequestReamrk89ByDelete(requestid);
forwardList = requestDeleteQueryPortalUtil.queryRequestForwardByDelete(requestid);
atList = requestDeleteQueryPortalUtil.queryRequestAtByDelete(requestid);
baseList = requestDeleteQueryPortalUtil.queryRequestDataByDelete(requestid);
}else if("intervenor".equals(src)) {
bb.writeLog("RequestInterventionQueryUtil");
RequestInterventionQueryUtil requestInterventionQueryUtil = new RequestInterventionQueryUtil();
Map<String,String> nodeMap = requestInterventionQueryUtil.queryRequestNodeIdByIntervention(requestid);
copyList = requestInterventionQueryUtil.queryWorkflowRemark89ByRequestid(requestid,nodeMap);
forwardList = requestInterventionQueryUtil.queryWorkflowForwardByRequestid(requestid,nodeMap);
}else{
if("1".equals(agentType)){
/**
*
* userid == ==
*/
copyList = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,userid);
forwardList = sendPortalTodoDeleteUtil.queryWorkflowForwardByRequestid(requestid,userid);
atList = sendPortalTodoDeleteUtil.queryWorkflowAtByRequestid(requestid,userid);
}else if("2".equals(agentType)){
/**
*
* userid = ==
* agentorByAgentId =
*
* @
*
*/
if(StringUtils.isNotBlank(agentorByAgentId)){
copyList = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,userid);
forwardList = sendPortalTodoDeleteUtil.queryWorkflowForwardByRequestid(requestid,userid);
atList = sendPortalTodoDeleteUtil.queryWorkflowAtByRequestid(requestid,agentorByAgentId);
}else{
copyList = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,userid);
forwardList = sendPortalTodoDeleteUtil.queryWorkflowForwardByRequestid(requestid,userid);
atList = sendPortalTodoDeleteUtil.queryWorkflowAtByRequestid(requestid,userid);
}
}else{
copyList = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,userid);
forwardList = sendPortalTodoDeleteUtil.queryWorkflowForwardByRequestid(requestid,userid);
@ -131,13 +148,13 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
Map<String, Object> result = nextExecute(targetCommand);
bb.writeLog("SendPortalTodoCmd-submit-end:"+requestid+" time:"+System.currentTimeMillis());
sendDate(result,requestid,agentType,src,nodeid,userid,f_weaver_belongto_userid,user,copyList,forwardList,atList);
sendDate(result,requestid,agentType,src,nodeid,userid,f_weaver_belongto_userid,user,copyList,forwardList,atList,baseList);
return result;
}
public void sendDate(Map<String, Object> result,String requestid,String agentType,String src,String nodeid,String userid,String f_weaver_belongto_userid,User user,List<Map<String,String>> copyList,List<Map<String,String>> forwardList,List<Map<String,String>> atList){
public void sendDate(Map<String, Object> result,String requestid,String agentType,String src,String nodeid,String userid,String f_weaver_belongto_userid,User user,List<Map<String,String>> copyList,List<Map<String,String>> forwardList,List<Map<String,String>> atList,List<Map<String,String>> baseList){
BaseBean bb = new BaseBean();
try{
@ -165,7 +182,6 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
String center = Constants.center;
String bpm_app_requesturl = Constants.bpm_app_requesturl;
String notes = "" ;
bb.writeLog("SendPortalTodoCmd-portal-start:"+requestid+" time:"+System.currentTimeMillis());
if(Util.getIntValue(requestid) == -1 && "save".equals(src)){
@ -179,7 +195,7 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
/***
* :
* 1:
* 1:,
* 2:
*/
if("1".equals(agentType)){
@ -195,34 +211,65 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
notes = "流程提交";
}else if(Util.getIntValue(requestid)> 0 && "reject".equals(src)){
sendPortalTodoUtil.sendTodoDataByReject(requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
notes = "流程退回";
RequestRejectSendPortalUtil requestRejectSendPortalUtil = new RequestRejectSendPortalUtil();
requestRejectSendPortalUtil.sendTodoDataByReject(requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
}else if(Util.getIntValue(requestid)> 0 && "intervenor".equals(src)){
SendPortalMonitorUtil sendPortalMonitorUtil = new SendPortalMonitorUtil();
sendPortalMonitorUtil.monitorIntervention(requestid,userid);
notes = "流程干预";
RequestInterventionSendPortalUtil requestInterventiomSendPortalUtil = new RequestInterventionSendPortalUtil();
requestInterventiomSendPortalUtil.monitorIntervention(requestid,userid);
}else if(Util.getIntValue(requestid)> 0 && "delete".equals(src)){
SendPortalMonitorUtil sendPortalMonitorUtil = new SendPortalMonitorUtil();
sendPortalMonitorUtil.monitorDelete(requestid,userid);
RequestDeleteSendPortalUtil requestDeleteSendPortalUtil = new RequestDeleteSendPortalUtil();
requestDeleteSendPortalUtil.monitorDelete(userid,baseList);
notes = "流程页面删除";
}
bb.writeLog("sendPortalTodoDeleteUtil22:"+notes+" src:"+src);
SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
sendPortalTodoDeleteUtil.operate3typeByList(user,copyList,forwardList,atList,notes);
if("delete".equals(src)){
RequestDeleteSendPortalUtil requestDeleteSendPortalUtil = new RequestDeleteSendPortalUtil();
requestDeleteSendPortalUtil.completeRemark89ForwardAtByDelete(user,copyList,forwardList,atList,notes);
}else if("intervenor".equals(src)){
RequestInterventionSendPortalUtil requestInterventionSendPortalUtil = new RequestInterventionSendPortalUtil();
requestInterventionSendPortalUtil.completeRemark89ForwardByIntervention(user,copyList,forwardList,notes);
}else if("submit".equals(src) || "reject".equals(src) ){
bb.writeLog("sendPortalTodoDeleteUtil22:"+notes+" src:"+src);
SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
sendPortalTodoDeleteUtil.operate3typeByList(user,copyList,forwardList,atList,notes);
}
bb.writeLog("SendPortalTodoCmd-portal-end:"+requestid+" time:"+System.currentTimeMillis());
}else if("DELETE".equals(executeResult)){
String notes = "" ;
if(Util.getIntValue(requestid)> 0 && "delete".equals(src)){
// String notes = "" ;
// if(Util.getIntValue(requestid)> 0 && "delete".equals(src)){
//
// SendPortalMonitorUtil sendPortalMonitorUtil = new SendPortalMonitorUtil();
// sendPortalMonitorUtil.monitorDelete(requestid,userid);
// notes = "流程页面删除";
// }
// bb.writeLog("sendPortalTodoDeleteUtil33:"+notes+" src:"+src);
// SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
// sendPortalTodoDeleteUtil.operate3typeByList(user,copyList,forwardList,atList,notes);
String notes = "流程提交异常" ;
if(Util.getIntValue(requestid)> 0){
if("delete".equals(src)){
RequestDeleteSendPortalUtil requestDeleteSendPortalUtil = new RequestDeleteSendPortalUtil();
requestDeleteSendPortalUtil.monitorDelete(userid,baseList);
notes = "流程提交异常,执行删除";
requestDeleteSendPortalUtil.completeRemark89ForwardAtByDelete(user,copyList,forwardList,atList,notes);
}else{
SendPortalMonitorUtil sendPortalMonitorUtil = new SendPortalMonitorUtil();
sendPortalMonitorUtil.monitorDelete(requestid,userid);
notes = "流程页面删除";
bb.writeLog("sendPortalTodoDeleteUtil33:"+notes+" src:"+src);
if("submit".equals(src) || "reject".equals(src) ){
SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
sendPortalTodoDeleteUtil.operate3typeByList(user,copyList,forwardList,atList,notes);
}
}
}
bb.writeLog("sendPortalTodoDeleteUtil33:"+notes+" src:"+src);
SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
sendPortalTodoDeleteUtil.operate3typeByList(user,copyList,forwardList,atList,notes);
}else{
bb.writeLog("SendPortalTodoCmd-FAILURE");
String portal_todourl = Constants.portal_todourl;

@ -1,11 +1,16 @@
package com.customization.dito.sendtodo;
import com.alibaba.fastjson.JSONObject;
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;
@ -226,30 +231,32 @@ public class SendPortalTodoDeleteUtil {
/**
* @
*
* @param requestid
*/
public void queryWorkflowRemark8AtByLoadForm(String requestid,String current_userid,List<Map<String, String>> remark8List,List<Map<String, String>> atList){
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.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,t.preisremark\n" +
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 (8,18)\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"));
@ -266,15 +273,19 @@ public class SendPortalTodoDeleteUtil {
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("8".equals(preisremark)){
}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();
@ -283,7 +294,7 @@ public class SendPortalTodoDeleteUtil {
}
/***
*
* @@
* @param loginid
* @param remark8List
* @param atList
@ -293,73 +304,278 @@ public class SendPortalTodoDeleteUtil {
BaseBean bb = new BaseBean();
SendPortalMonitorDeleteUtil sendPortalMonitorDeleteUtil = new SendPortalMonitorDeleteUtil();
try{
bb.writeLog("copyList:"+remark8List.size());
bb.writeLog("remark8List888:"+remark8List.size());
if(remark8List.size() >0){
String notes = "打开流程表单详情页面,完成抄送不需提交的数据";
sendPortalMonitorDeleteUtil.monitorFinishedWorkflowCopyToByRequestid(remark8List,loginid,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
bb.writeLog("remark8List3-e:"+e);
}
try{
bb.writeLog("atList:"+atList.size());
bb.writeLog("atList888:"+atList.size());
if(atList.size() >0){
String notes = "打开流程表单详情页面,完成@的数据";
String notes = "打开流程表单详情页面,完成@的数据门户调用";
sendPortalMonitorDeleteUtil.monitorFinishedWorkflowAtByRequestid(atList,loginid,notes);
completePortalAtDoneByRequestid(atList,loginid);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
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;
}
// public int getAtCountByRequestid(String requestid,String userid) {
// int atcount = 0 ;
// BaseBean bb = new BaseBean();
// try{
// RecordSet rs = new RecordSet();
// String sql =" select t1.userid,t1.nodeid " +
// " from workflow_currentoperator t1 " +
// " where t1.isremark = 8 and preisremark = 18" +
// " and t1.requestid= " +requestid +
// " and t1.userid= " +userid ;
// bb.writeLog("completeForwardRequest --sql:" + sql);
// rs.executeQuery(sql);
// while (rs.next()) {
// atcount++ ;
// }
// }catch (Exception e){
//
// }
// return atcount;
// }
//
//
// public int getForwardCountByRequestid(String requestid,String userid) {
// int forwardcount = 0;
// BaseBean bb = new BaseBean();
// try{
// RecordSet rs = new RecordSet();
// String sql =" select t1.userid,t1.nodeid " +
// " from workflow_currentoperator t1 " +
// " where t1.isremark = 1 " +
// " and t1.requestid= " +requestid +
// " and t1.userid= " +userid ;
// bb.writeLog("completeForwardRequest --sql:" + sql);
// rs.executeQuery(sql);
// while (rs.next()) {
// forwardcount++ ;
// }
// }catch (Exception e){
//
// }
// return forwardcount;
//
// }
}

@ -9,12 +9,9 @@ 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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -22,6 +19,8 @@ import java.util.regex.Pattern;
public class SendPortalTodoUtil {
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
/***
*
* @param requestid
@ -40,7 +39,6 @@ public class SendPortalTodoUtil {
String emailArray = "";
String requestname = "";
String actionType = "0" ;
String terminal = "1" ;
String taskType = "0";
@ -51,26 +49,21 @@ public class SendPortalTodoUtil {
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
JSONObject requestObject = new JSONObject();
try {
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
String currentNodeId = "";
String currentNodeName = "" ;
String nextNodeUserIds = "";
String workflowname = "";
String currentUserId = user.getUID()+"";
String createrLoginId = "" ;
String createrLastName = "";
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 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;
@ -79,72 +72,49 @@ public class SendPortalTodoUtil {
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
String sql =" select t1.requestname,h1.loginid,d1.nodename,h1.email,c1."+cus_staff+" as staffid,t3.workflowname,h2.lastname,t2.userid "+
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" left join cus_fielddata c1 on c1.id = t2.userid and scopeid= "+scopeid+" and 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 (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 t2.userid in ("+currentUserId+") \n" +
" and (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','8','9','11'))\n" +
" and (ifnull(t1.currentstatus, -1) = -1 or (ifnull(t1.currentstatus, -1) = 0 and t1.creater in ("+currentUserId+"))) \n" +
" and t2.islasttimes = 1 \n" +
" and (t2.isprocessing = '' or t2.isprocessing is null) \n" +
" and t2.requestid = "+requestid ;
String staffid = "";
String sql =" select 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 scopeid= "+scopeid+" and scope = '"+scope+"' "+
" where t2.userid in ("+currentUserId+") \n" +
" and (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','8','9','11'))\n" +
" and (ifnull(t1.currentstatus, -1) = -1 or (ifnull(t1.currentstatus, -1) = 0 and t1.creater in ("+currentUserId+"))) \n" +
" and (t2.isprocessing = '' or t2.isprocessing is null) \n" +
" and t2.requestid = "+requestid ;
bb.writeLog("sendTodoDataByCreater-sql:"+sql);
rs.executeQuery(sql);
if (rs.next()){
workflowname = Util.null2String(rs.getString("workflowname")) ;
requestname = Util.null2String(rs.getString("requestname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
createrLoginId = Util.null2String(rs.getString("loginid")) ;
createrLastName = Util.null2String(rs.getString("lastname")) ;
String email = Util.null2String(rs.getString("email")) ;
bb.writeLog("email1:"+email);
Matcher matcher = regex.matcher(email);
if(matcher.matches()){
emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
}
String userid = Util.null2String(rs.getString("userid")) ;
nextNodeUserIds += StringUtils.isEmpty(nextNodeUserIds) ? userid : ","+userid ;
staffid = Util.null2String(rs.getString("staffid"));
}
requestObject.put("center",center);
requestObject.put("title",requestname);
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("taskCode","weaver"+requestid);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
JSONArray taskObjectList = new JSONArray();
JSONObject taskObject = new JSONObject();
if("sysadmin".equals(createrLoginId)){
createrLoginId = "Admin";
}
String objectCode = createrLoginId ;
String operatorCode = createrLoginId ;
String staffid = Util.null2String(rs.getString("staffid"));
taskObject.put("objectAction",objectAction);
taskObject.put("objectType",objectType);
taskObject.put("objectCode",objectCode);
@ -157,6 +127,7 @@ public class SendPortalTodoUtil {
// String username = "admin";
// String passwd = "Uportal_123";
// String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ;
if (taskObjectList.size() > 0){
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
@ -230,34 +201,33 @@ public class SendPortalTodoUtil {
try {
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
JSONArray taskObjectList = new JSONArray();
String requestname = "" ;
String currentNodeId = "" ;
String currentNodeName = "";
String workflowname = "" ;
String createrLoginId = "" ;
String createrLastName = "";
String nextNodeUserIds = "" ;
String currentUserId = user.getUID()+"" ;
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("sendTodoDataByNode--sql:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
createrLastName = Util.null2String(rs.getString("lastname")) ;
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
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 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 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("sendTodoDataByNode--sql:"+sql);
// rs.executeQuery(sql);
// if (rs.next()){
// requestname = Util.null2String(rs.getString("requestname")) ;
// currentNodeId = Util.null2String(rs.getString("nodeid")) ;
// currentNodeName = Util.null2String(rs.getString("nodeName")) ;
// workflowname = Util.null2String(rs.getString("workflowname")) ;
// createrLastName = Util.null2String(rs.getString("lastname")) ;
// createrLoginId = Util.null2String(rs.getString("loginid")) ;
// }
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
@ -270,34 +240,42 @@ public class SendPortalTodoUtil {
}
JSONObject requestObject = new JSONObject();
requestObject.put("center",center);
requestObject.put("title",requestname);
requestObject.put("creator",createrLoginId);
requestObject.put("taskCode","weaver"+requestid);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",currentNodeName);
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" +
" left join workflow_nodebase d1 on d1.id = t2.nodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11'))\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid;
String nextNodeUserIds = "" ;
String currentUserId = user.getUID()+"" ;
JSONArray taskObjectList = new JSONArray();
// String 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;
String sql = requestBaseInfoUtil.getTodoSql(requestid);
bb.writeLog("sendTodoDataByNode--sql:"+sql);
rs.executeQuery(sql);
@ -306,28 +284,28 @@ public class SendPortalTodoUtil {
String userocde = Util.null2String(rs.getString("loginid")) ;
String staffid = Util.null2String(rs.getString("staffid")) ;
String userid = Util.null2String(rs.getString("userid")) ;
nextNodeUserIds += StringUtils.isEmpty(nextNodeUserIds) ? userid : ","+userid ;
if("sysadmin".equals(userocde)){
userocde = "Admin";
}
if(!"0".equals(userid)){
nextNodeUserIds += StringUtils.isEmpty(nextNodeUserIds) ? userid : ","+userid ;
String objectCode = userocde ;
String operatorCode = userocde ;
if(StringUtils.isNotBlank(userocde)){
String objectCode = userocde ;
String operatorCode = userocde ;
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);
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("email2:"+email);
Matcher matcher = regex.matcher(email);
if(matcher.matches()){
emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
String email = Util.null2String(rs.getString("email")) ;
bb.writeLog("email2:"+email);
Matcher matcher = regex.matcher(email);
if(matcher.matches()){
emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
}
}
}
}
@ -353,7 +331,6 @@ public class SendPortalTodoUtil {
}
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);
@ -465,20 +442,21 @@ public class SendPortalTodoUtil {
*
*
* @param requestid
* @param noideid
* @param nodeid
* @param user
*/
public void sendTodoDataByNode(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){
public void sendTodoDataByNode(String requestid,String nodeid,User user,String portal_todourl,String bpm_app_workflowurl,String username,String passwd,String bpm_workflowurl,String center,String 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");
JSONObject requestObject = new JSONObject();
RecordSet rs = new RecordSet();
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByNode");
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
@ -491,40 +469,27 @@ public class SendPortalTodoUtil {
String emailArray = "";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
try {
String createrLoginId = "";
String currentNodeId = "" ;
String currentNodeName = "" ;
String nextNodeUserIds = "" ;
String currentLoginId = user.getLoginid() ;
String currentStaffId = "" ;
String createrLastName = "" ;
String currentUserId = user.getUID()+"" ;
String message = "" ;
String userSql = "select "+cus_staff+" as staffid from cus_fielddata where scopeid="+scopeid+" and scope='"+scope+"' and id=?";
rs.executeQuery(userSql,currentUserId);
if (rs.next()){
currentStaffId = Util.null2String(rs.getString("staffid"));
}
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 currentnodeid = "" ;
String currentnodetype = "" ;
String nodesql = " select t1.currentnodeid,t1.currentnodetype "+
" from workflow_requestbase t1\n" +
" where ifnull(t1.deleted,0) <> 1 \n" +
" and t1.requestid = "+requestid ;
rs.executeQuery(nodesql);
if(rs.next()){
currentnodeid = Util.null2String(rs.getString("currentnodeid"));
currentnodetype = Util.null2String(rs.getString("currentnodetype"));
}
String currentnodetype = baseMap.get("currentnodetype");
bb.writeLog("sendTodoDataByNode-currentnodeid:"+currentnodeid);
bb.writeLog("sendTodoDataByNode-currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
String currentUserId = user.getUID()+"" ;
message = "流程流转到归档节点执行actionType=3" ;
String actionType = "3" ;
try {
@ -538,42 +503,24 @@ public class SendPortalTodoUtil {
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
String requestname = "" ;
String workflowname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("monitorDelete4Requestid--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
nodeId = Util.null2String(rs.getString("nodeid")) ;
nodeName = Util.null2String(rs.getString("nodeName")) ;
}
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("title",requestname);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("nodeId",nodeId);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",workflowname);
String auth = username + ":" + passwd;
bb.writeLog("sendTodoDataByNode-3-requestObject:"+requestObject.toJSONString());
@ -585,10 +532,10 @@ public class SendPortalTodoUtil {
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,"",message);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,"",message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message);
}
}
}
@ -597,64 +544,22 @@ public class SendPortalTodoUtil {
bb.writeLog("sendTodoDataByNode:"+e);
}
}else{
message += "流程流转从"+noideid+"节点提交,待办人员:" ;
int count = 0 ;
String countuserids = "" ;
String countSql = " select t2.userid\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11'))\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid+
" and t2.nodeid = " + noideid ;
bb.writeLog("sendTodoDataByNode--countSql:"+countSql);
rs.executeQuery(countSql);
while (rs.next()){
String userid = Util.null2String(rs.getString("userid"));
countuserids += StringUtils.isBlank(countuserids) ? userid : ","+userid;
bb.writeLog("sendTodoDataByNode-userid:"+userid);
count++;
}
message = message + "["+countuserids+"]" ;
bb.writeLog("sendTodoDataByNode--count:"+count);
message += "流程流转从"+nodeid+"节点提交,待办人员:" ;
int count = requestBaseInfoUtil.getTodoCountByRequestNode(requestid,nodeid);
// count >0 会签还没有流转到下个节点
if(count >0){
String requestname = "" ;
String workflowname = "" ;
message += ",流程流转到"+currentNodeId+"节点执行actionType=1" ;
if(count >0){
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 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("sendTodoDataByNode--sql:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
createrLoginId = Util.null2String(rs.getString("loginid")) ;
createrLastName = Util.null2String(rs.getString("lastname")) ;
}
message += ",流程流转到"+currentNodeId+"节点执行actionType=1" ;
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;
@ -664,27 +569,26 @@ public class SendPortalTodoUtil {
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
if("sysadmin".equals(currentLoginId)){
currentLoginId = "Admin";
}
bb.writeLog("urlDing", urlDing);
requestObject.put("center",center);
requestObject.put("title",requestname);
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("taskCode","weaver"+requestid);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
if(StringUtils.isNotBlank(currentLoginId)){
String objectCode = currentLoginId ;
@ -698,29 +602,22 @@ public class SendPortalTodoUtil {
taskObjectList.add(taskObject);
}
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;
// String 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.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid;
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 userid = Util.null2String(rs.getString("userid")) ;
nextNodeUserIds += StringUtils.isBlank(nextNodeUserIds) ? userid :","+userid ;
if("sysadmin".equals(usercode)){
usercode = "Admin";
}
String objectCode = usercode ;
String operatorCode = usercode ;
@ -734,15 +631,7 @@ public class SendPortalTodoUtil {
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 ;
// }
}
requestObject.put("taskObjectList",taskObjectList);
if (taskObjectList.size() > 0){
@ -774,31 +663,11 @@ public class SendPortalTodoUtil {
}
}
}else{
String currentUserId = user.getUID()+"" ;
String objectAction = "0" ;
String objectType = "0";
JSONArray taskObjectList = new JSONArray();
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("sendTodoDataByNode--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
createrLoginId = Util.null2String(rs.getString("loginid")) ;
createrLastName = Util.null2String(rs.getString("lastname")) ;
}
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;
@ -809,36 +678,38 @@ public class SendPortalTodoUtil {
}
bb.writeLog("urlDing", urlDing);
JSONObject requestObject = new JSONObject();
requestObject.put("center",center);
requestObject.put("title",requestname);
requestObject.put("creator",createrLoginId);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("title",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("taskType",taskType);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",currentNodeName);
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;
JSONArray taskObjectList = new JSONArray();
// String 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;
String sql = requestBaseInfoUtil.getTodoSql(requestid);
bb.writeLog("sendTodoDataByNode--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()){
@ -846,28 +717,25 @@ public class SendPortalTodoUtil {
String usercode = Util.null2String(rs.getString("loginid")) ;
String staffid = Util.null2String(rs.getString("staffid")) ;
String userid = Util.null2String(rs.getString("userid")) ;
nextNodeUserIds += StringUtils.isBlank(nextNodeUserIds) ? userid :","+userid ;
if("sysadmin".equals(usercode)){
usercode = "Admin";
}
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("0".equals(userid)){
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 ;
}
}
}
@ -876,45 +744,41 @@ public class SendPortalTodoUtil {
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);
//{"resultCode":"1","resultMsg":"No Result"}
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
bb.writeLog("emailArray:"+emailArray);
if(StringUtils.isNotEmpty(emailArray))
{
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
//{"resultCode":"1","resultMsg":"No Result"}
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
Map<String,String> templateMap = getEmailTemplate(requestname,createrLastName,processTime);
String notificationSubject = templateMap.get("notificationSubject");
String notificationContent = templateMap.get("notificationContent");
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);
}
sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds,message);
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 resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,nextNodeUserIds,message);
}
}
}
}
}
}
// //处理抄送的
// JSONObject taskObject = new JSONObject();
// String sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
@ -1041,46 +905,21 @@ public class SendPortalTodoUtil {
String objectAction = "0" ;
String objectType = "0";
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String currentUserId = user.getUID()+"" ;
String nextNodeUserIds = "";
try {
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
String actionType = "2" ;
JSONArray taskObjectList = new JSONArray();
String createrLastName = "";
String createrLoginId = "";
String workflowname = "" ;
String requestname = "";
String currentNodeId = "";
String currentNodeName = "" ;
String nextNodeUserIds = "" ;
String currentUserId = user.getUID()+"" ;
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.lastname "+
" 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("sendTodoDataByReject--sql:"+sql);
rs.executeQuery(sql);
if (rs.next()){
workflowname = Util.null2String(rs.getString("workflowname")) ;
requestname = Util.null2String(rs.getString("requestname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
createrLastName = Util.null2String(rs.getString("lastname")) ;
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
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 urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
@ -1093,49 +932,44 @@ public class SendPortalTodoUtil {
}
JSONObject requestObject = new JSONObject();
requestObject.put("center",center);
requestObject.put("title",requestname);
requestObject.put("creator",createrLoginId);
requestObject.put("taskCode","weaver"+requestid);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",currentNodeName);
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;
// String 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;
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")) ;
String userid = Util.null2String(rs.getString("userid")) ;
nextNodeUserIds += StringUtils.isBlank(nextNodeUserIds) ? userid :","+userid ;
JSONObject taskObject = new JSONObject();
if("sysadmin".equals(usercode)){
usercode = "Admin";
}
String objectCode = usercode ;
String operatorCode = usercode ;
@ -1153,7 +987,6 @@ public class SendPortalTodoUtil {
emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
}
}
requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd;

@ -8,6 +8,8 @@ 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.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
@ -16,17 +18,15 @@ import java.util.Map;
public class SendPortalWithAddDoneCmd {
private Map<String,Object> params;
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
public SendPortalWithAddDoneCmd(Map<String,Object> params){
this.params=params;
this.params = params;
}
public Map<String, Object> execute(CommandContext commandContext) {
BaseBean bb = new BaseBean();
List<Map<String,Object>> allDonelist = (List<Map<String,Object>>)(params.get("doneDatas"));
bb.writeLog("allDonelist:"+allDonelist.size());
String requestid = Util.null2String(params.get("requestid"));
List<Map<String,Object>> donelist = new ArrayList<Map<String,Object>>();
List<String> userList = getRequestArchivedReamrkUserIds(requestid);
@ -38,15 +38,22 @@ public class SendPortalWithAddDoneCmd {
donelist.add(doneMap);
}
}
bb.writeLog("donelist:"+donelist.size());
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
String portal_doneurl = PropBean.getUfPropValue("portal_doneurl");
String username = PropBean.getUfPropValue("username");
String passwd = PropBean.getUfPropValue("passwd");
String center = PropBean.getUfPropValue("center");
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
// String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
// String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
// String portal_doneurl = PropBean.getUfPropValue("portal_doneurl");
// String username = PropBean.getUfPropValue("username");
// String passwd = PropBean.getUfPropValue("passwd");
// String center = PropBean.getUfPropValue("center");
// String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
String bpm_app_workflowurl = Constants.bpm_app_workflowurl;
String bpm_app_requesturl = Constants.bpm_app_requesturl;
String portal_doneurl = Constants.portal_doneurl;
String username = Constants.username;
String passwd = Constants.passwd;
String center = Constants.center;
String bpm_workflowurl = Constants.bpm_workflowurl;
sendPortalDoneData(requestid,donelist,portal_doneurl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,bpm_app_requesturl);
@ -127,10 +134,6 @@ public class SendPortalWithAddDoneCmd {
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
// RecordSet rs = new RecordSet();
// String scopeid = "-1";
// String scope = "HrmCustomFieldByInfoType" ;
try {
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
@ -153,148 +156,47 @@ public class SendPortalWithAddDoneCmd {
for (Map<String,Object> doneMap:donelist)
{
// boolean bool = checkIsAgent(workflowid,userid);
// bb.writeLog("=============== SendPortalWithAddDoneCmd bool =================== " + bool);
//没有流程代理的情况下
// if(!bool){
//判断是否是抄送流程
// String cus_staff = PropBean.getUfPropValue("cus_staff") ;
// String sql = " select count(1) num "+
// " 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 t1.currentnodetype <> 3"+
// " and t2.isremark in ('2','9')\n" +
// " and t2.preisremark in ('8','9')\n" +
// " and t2.islasttimes = 1\n" +
// " and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid + " and t2.userid = "+ userid;
//
// rs.executeQuery(sql);
// int num = 0;
// //过滤非归档节点,抄送待阅流程
// if(rs.next()){
// num = rs.getInt("num");
// }
// //判断是否为转发节点
// sql = "SELECT c1."+ PropBean.getUfPropValue("cus_staff")+" as staffid FROM workflow_currentoperator t1 left join cus_fielddata c1 on c1.id = t1.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' WHERE t1.preisremark=1 and t1.REQUESTID=? and t1.USERID=?";
// rs.executeQuery(sql,requestid,doneMap.get("id"));
// if (rs.next()){
// //删除转发的待办
// JSONObject jsonObject = new JSONObject();
//
// jsonObject.put("center",center);
// jsonObject.put("title",doneMap.get("requestname"));
// jsonObject.put("creator",doneMap.get("creater"));
// jsonObject.put("taskCode","weaver"+requestid);
//
// jsonObject.put("taskType","0");
// jsonObject.put("actionType","1");
// jsonObject.put("createDate",processTime);
// jsonObject.put("messageTitle",getShortMessageTitle(doneMap.get("requestname").toString()));
// jsonObject.put("messageContent",doneMap.get("requestname"));
// jsonObject.put("terminal","1");
// jsonObject.put("urlPc",urlPc);
// jsonObject.put("urlApp",urlApp);
// jsonObject.put("urlDing",urlDing);
// jsonObject.put("nodeName",doneMap.get("nodename"));
// jsonObject.put("ticketType",doneMap.get("workflowname"));
//
// JSONArray list = new JSONArray();
// JSONObject taskObject = new JSONObject();
// list.add(taskObject);
// taskObject.put("objectAction","1");
// taskObject.put("objectType","0");
// taskObject.put("objectCode",doneMap.get("loginid"));
// taskObject.put("objectId",rs.getString("staffid"));
// taskObject.put("operatorCode",doneMap.get("loginid"));
// jsonObject.put("taskObjectList",list);
// bb.writeLog("SendPortalWithAddDoneCmd--delete forward workflow--requestObject:" + jsonObject.toJSONString());
// String auth = username + ":" + passwd;
// String msgdata = httpRequestUtil.doPostByAuth(Constants.portal_todourl, jsonObject.toJSONString(), auth);
// bb.writeLog("SendPortalToReadUtil-msgdata:" + msgdata);
// if(StringUtils.isNotEmpty(msgdata)) {
// JSONObject msgObject = JSONObject.parseObject(msgdata);
// if(msgObject.containsKey("resultCode")){
// String resultCode = msgObject.getString("resultCode");
// if(!"0".equals(resultCode)){
// String resultmsg = msgObject.getString("resultMsg");
// sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,doneMap.get("id").toString(),doneMap.get("nodename").toString(),doneMap.get("id").toString(),jsonObject.toJSONString(),resultCode,resultmsg);
// }
// }
// }
//
// }
// if (num == 0){
// bb.writeLog("num :"+num+",userid"+doneMap.get("id"));
// String nodeid = requestid+doneMap.get("id");
String workflowid = Util.null2String(doneMap.get("workflowid"));
String userid = Util.null2String(doneMap.get("userid"));
bb.writeLog("=============== SendPortalWithAddDoneCmd workflowid =================== " + workflowid);
bb.writeLog("=============== SendPortalWithAddDoneCmd userid =================== " + userid);
String workflowname = Util.null2String(doneMap.get("workflowname"));
String requestname = Util.null2String(doneMap.get("requestname"));
String loginid = Util.null2String(doneMap.get("loginid"));
bb.writeLog("loginid1:"+loginid);
if("sysadmin".equals(loginid)){
loginid = "Admin";
String workflowid = Util.null2String(doneMap.get("workflowid"));
String userid = Util.null2String(doneMap.get("userid"));
String workflowname = Util.null2String(doneMap.get("workflowname"));
String requestname = Util.null2String(doneMap.get("requestname"));
String loginid = Util.null2String(doneMap.get("loginid"));
String creater = Util.null2String(doneMap.get("creater"));
String nodeName = Util.null2String(doneMap.get("nodename"));
String nodeid = requestid+userid+"_"+System.currentTimeMillis();
JSONObject requestObject = new JSONObject();
requestObject.put("center", center);
requestObject.put("taskCode", "weaver"+requestid);
requestObject.put("nodeId", nodeid);
requestObject.put("ticketType", workflowname);
requestObject.put("title", requestname);
requestObject.put("creator", creater);
requestObject.put("processStaff", loginid);
requestObject.put("processTime", processTime);
requestObject.put("isRecall", isRecall);
requestObject.put("actionType", actionType);
requestObject.put("urlPC", urlPc);
requestObject.put("urlApp", urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth);
if(StringUtils.isNotEmpty(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodeName,creater,requestObject.toJSONString(),resultCode,"",zhjkbs,userid);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodeName,creater,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid);
}
bb.writeLog("loginid2:"+loginid);
String creater = Util.null2String(doneMap.get("creater"));
bb.writeLog("creater1:"+creater);
if("sysadmin".equals(creater)){
creater = "Admin";
}
bb.writeLog("creater2:"+creater);
String nodeName = Util.null2String(doneMap.get("nodename"));
// String nodeid = Util.null2String(doneMap.get("noedid"));
// bb.writeLog("nodeid:"+nodeid);
// if(StringUtils.isBlank(nodeid)){
// nodeid = requestid+userid; ;
// }
// bb.writeLog("nodeid2:"+nodeid);
String nodeid = requestid+userid+"_"+System.currentTimeMillis();
JSONObject requestObject = new JSONObject();
requestObject.put("center", center);
requestObject.put("taskCode", "weaver"+requestid);
requestObject.put("nodeId", nodeid);
requestObject.put("ticketType", workflowname);
requestObject.put("title", requestname);
requestObject.put("creator", creater);
requestObject.put("processStaff", loginid);
requestObject.put("processTime", processTime);
requestObject.put("isRecall", isRecall);
requestObject.put("actionType", actionType);
requestObject.put("urlPC", urlPc);
requestObject.put("urlApp", urlApp);
requestObject.put("urlDing",urlDing);
String auth = username + ":" + passwd;
bb.writeLog("done requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth);
bb.writeLog("done msgdata:" + msgdata);
if(StringUtils.isNotEmpty(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodeName,creater,requestObject.toJSONString(),resultCode,"",zhjkbs,userid);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodeName,creater,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid);
}
}
}
// }
}
}
}
} catch (Exception e) {
bb.writeLog("done Exception");

@ -115,7 +115,7 @@ public class SendPortalWithAddTodoCmd {
" 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" +
" 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 ;

@ -0,0 +1,255 @@
package com.customization.dito.sendtodo.withdraw;
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.engine.core.cfg.annotation.CommandDynamicProxy;
import com.engine.core.interceptor.AbstractCommandProxy;
import com.engine.core.interceptor.Command;
import com.engine.workflow.cmd.requestForm.RequestWithdrawCmd;
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 javax.servlet.http.HttpServletRequest;
import java.net.URLEncoder;
import java.util.*;
/**
* @Title
* @Author shil
* @CreateDate 2023/10/9
* @Version 1.0
* @Description
*/
@CommandDynamicProxy(target = RequestWithdrawCmd.class, desc="流程撤回给门户发送待办消息")
public class SendPortalWithDrawCmd extends AbstractCommandProxy<Map<String,Object>> {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
@Override
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
BaseBean bb = new BaseBean();
bb.writeLog("SendPortalWithDrawCmd");
RequestWithdrawCmd requestWithdrawCmd = (RequestWithdrawCmd) targetCommand;
HttpServletRequest request = requestWithdrawCmd.getRequest();
String requestid = Util.null2String(request.getParameter("requestid")).trim();
String actionType = Util.null2String(request.getParameter("actionType")).trim();
User user = requestWithdrawCmd.getUser();
bb.writeLog("requestid:"+requestid);
bb.writeLog("actionType:"+actionType);
bb.writeLog("user:"+user.getLoginid());
Map<String, Object> result = nextExecute(targetCommand);
if("submit".equals(actionType)){
sendPortalByWithDraw(result,requestid,user);
}
return result;
}
public void sendPortalByWithDraw(Map<String, Object> resultMap,String requestid,User user){
BaseBean bb = new BaseBean();
bb.writeLog("sendPortalByWithDraw:"+requestid);
if(resultMap.containsKey("result")){
String result = Util.null2String(resultMap.get("result"));
bb.writeLog("result:"+result);
if("success".equals(result)){
if(StringUtils.isNotBlank(requestid)){
sendTodoDataByForceBack(requestid);
}
}
}
}
public String sendTodoDataByForceBack(String requestid){
BaseBean bb = new BaseBean();
bb.writeLog("sendTodoDataByForceBack:"+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;
RecordSet rs = new RecordSet();
String message = "流程页面撤回操作";
String zhjkbs = "com.customization.dito.sendtodo.withdraw.SendPortalWithDrawCmd.sendTodoDataByForceBack" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String terminal = "1" ;
String taskType = "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.lang3.StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
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 currentnodeid = baseMap.get("currentnodeid");
bb.writeLog("sendTodoDataByForceBack-currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
message += ",流程状态为归档";
String actionType = "3" ;
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("sendTodoDataByForceBack-3-requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("sendTodoDataByForceBack-3-msgdata:"+msgdata);
if(StringUtils.isNotBlank(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,"",message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message);
}
}
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog("sendTodoDataByForceBack:"+e);
}
}else{
String actionType = "2";
String objectAction = "0" ;
String objectType = "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("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 =" 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.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid;
bb.writeLog("sendTodoDataByForceBack--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);
}
requestObject.put("actionType",actionType);
requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("sendTodoDataByForceBack--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,"",message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",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,70 @@
package com.customization.wfTodoCard;
/*
*
*/
public class ButtonInfo {
private String name;
private String color;
private String callUrl;
private String callParam;
private String callMethod;
private String callStatus;
private String callAuth;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getCallUrl() {
return callUrl;
}
public void setCallUrl(String callUrl) {
this.callUrl = callUrl;
}
public String getCallParam() {
return callParam;
}
public void setCallParam(String callParam) {
this.callParam = callParam;
}
public String getCallMethod() {
return callMethod;
}
public void setCallMethod(String callMethod) {
this.callMethod = callMethod;
}
public String getCallStatus() {
return callStatus;
}
public String getCallAuth() {
return callAuth;
}
public void setCallAuth(String callAuth) {
this.callAuth = callAuth;
}
public void setCallStatus(String callStatus) {
this.callStatus = callStatus;
}
}

@ -0,0 +1,65 @@
package com.customization.wfTodoCard;
import java.util.List;
/*
*
*/
public class CardInfo {
private TitleInfo titleInfo;
private List<ContentInfo> contentInfos;
private String warnMsg;
private String expandMsg;
private ViewDetail viewDetailInfo;
private List<ButtonInfo> buttonInfos;
public TitleInfo getTitleInfo() {
return titleInfo;
}
public void setTitleInfo(TitleInfo titleInfo) {
this.titleInfo = titleInfo;
}
public List<ContentInfo> getContentInfos() {
return contentInfos;
}
public void setContentInfos(List<ContentInfo> contentInfos) {
this.contentInfos = contentInfos;
}
public String getWarnMsg() {
return warnMsg;
}
public void setWarnMsg(String warnMsg) {
this.warnMsg = warnMsg;
}
public String getExpandMsg() {
return expandMsg;
}
public void setExpandMsg(String expandMsg) {
this.expandMsg = expandMsg;
}
public ViewDetail getViewDetailInfo() {
return viewDetailInfo;
}
public void setViewDetailInfo(ViewDetail viewDetailInfo) {
this.viewDetailInfo = viewDetailInfo;
}
public List<ButtonInfo> getButtonInfos() {
return buttonInfos;
}
public void setButtonInfos(List<ButtonInfo> buttonInfos) {
this.buttonInfos = buttonInfos;
}
}

@ -0,0 +1,39 @@
package com.customization.wfTodoCard;
/*
*
*/
public class ContentInfo {
// text / imageUrl / List<keyInfo>
// keyInfo: name / value
private String type;
private Integer order;
private String data;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Integer getOrder() {
return order;
}
public void setOrder(Integer order) {
this.order = order;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}

@ -0,0 +1,35 @@
package com.customization.wfTodoCard;
/**
*
*/
public class TitleInfo {
private String name;
private String iconName;
private String color;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIconName() {
return iconName;
}
public void setIconName(String iconName) {
this.iconName = iconName;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}

@ -0,0 +1,35 @@
package com.customization.wfTodoCard;
/*
*
*/
public class ViewDetail {
private String appUrl;
private String pcUrl;
// H5 miniApp webView browser
private String openMethod;
public String getAppUrl() {
return appUrl;
}
public void setAppUrl(String appUrl) {
this.appUrl = appUrl;
}
public String getPcUrl() {
return pcUrl;
}
public void setPcUrl(String pcUrl) {
this.pcUrl = pcUrl;
}
public String getOpenMethod() {
return openMethod;
}
public void setOpenMethod(String openMethod) {
this.openMethod = openMethod;
}
}

@ -0,0 +1,48 @@
package com.customization.wfTodoCard.action;
import com.alibaba.fastjson.JSONObject;
import weaver.conn.RecordSet;
import weaver.general.StringUtil;
import weaver.general.Util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.Context;
import java.util.HashMap;
import java.util.Map;
/*
*
*/
public class WFMessageRemindAction {
public String checkUser(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String, Object> apidatas = new HashMap<>();
String workflowId = Util.null2String(request.getParameter("workflowId"));
String messageRemindScope = Util.null2String(request.getParameter("messageRemindScope"));
RecordSet recordSet = new RecordSet();
if(!StringUtil.isEmpty(messageRemindScope)){
recordSet.execute("update workflow_base set messageRemindScope = '"+messageRemindScope+"' where id = '"+workflowId+"'");
apidatas.put("success", "1");
}else{
apidatas.put("success", "0");
}
return JSONObject.toJSONString(apidatas);
}
public String getRemindScope(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String, Object> apidatas = new HashMap<>();
String workflowId = Util.null2String(request.getParameter("workflowId"));
RecordSet recordSet = new RecordSet();
recordSet.execute("select messageRemindScope from workflow_base where id = '"+workflowId+"'");
if(recordSet.next()){
apidatas.put("messageRemindScope", recordSet.getString("messageRemindScope"));
}
return JSONObject.toJSONString(apidatas);
}
}

@ -0,0 +1,196 @@
package com.customization.wfTodoCard.entity;
// ½Úµã²Ù×÷ÈË
public class NodeOperator {
private String id;
private String workCode;
private String workflowId;
private String nodeId;
private String userId;
private String processUser;
private String preisremark;
private String isremark;
private String operatetype;
private String handleForwardId;
private String signOrder;
private String isReject;
private String isbereject;
private String isEnd;
private String receiveDate;
private String receiveTime;
private String requestId;
private String isStart; // Ìí¼ÓÐÂÊôÐÔ
private String createDate;
private String createTime;
private String language;
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getCreateDate() {
return createDate;
}
public void setCreateDate(String createDate) {
this.createDate = createDate;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getRequestId() {
return requestId;
}
public String getIsbereject() {
return isbereject;
}
public void setIsbereject(String isbereject) {
this.isbereject = isbereject;
}
public String getIsStart() {
return isStart;
}
public void setIsStart(String isStart) {
this.isStart = isStart;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getWorkCode() {
return workCode;
}
public String getReceiveDate() {
return receiveDate;
}
public void setReceiveDate(String receiveDate) {
this.receiveDate = receiveDate;
}
public String getReceiveTime() {
return receiveTime;
}
public void setReceiveTime(String receiveTime) {
this.receiveTime = receiveTime;
}
public void setWorkCode(String workCode) {
this.workCode = workCode;
}
public String getWorkflowId() {
return workflowId;
}
public void setWorkflowId(String workflowId) {
this.workflowId = workflowId;
}
public String getNodeId() {
return nodeId;
}
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getProcessUser() {
return processUser;
}
public void setProcessUser(String processUser) {
this.processUser = processUser;
}
public String getPreisremark() {
return preisremark;
}
public void setPreisremark(String preisremark) {
this.preisremark = preisremark;
}
public String getIsremark() {
return isremark;
}
public void setIsremark(String isremark) {
this.isremark = isremark;
}
public String getOperatetype() {
return operatetype;
}
public void setOperatetype(String operatetype) {
this.operatetype = operatetype;
}
public String getHandleForwardId() {
return handleForwardId;
}
public void setHandleForwardId(String handleForwardId) {
this.handleForwardId = handleForwardId;
}
public String getSignOrder() {
return signOrder;
}
public void setSignOrder(String signOrder) {
this.signOrder = signOrder;
}
public String getIsReject() {
return isReject;
}
public void setIsReject(String isReject) {
this.isReject = isReject;
}
public String getIsEnd() {
return isEnd;
}
public void setIsEnd(String isEnd) {
this.isEnd = isEnd;
}
}

@ -0,0 +1,911 @@
package com.customization.wfTodoCard.handle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.wfTodoCard.*;
import com.customization.wfTodoCard.entity.NodeOperator;
import com.customization.wfTodoCard.service.TodoCardService;
import org.apache.commons.lang3.StringEscapeUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.util.*;
public class CardInfoHandler extends BaseBean {
String oaHost = getPropValue("workflowTodoCard", "oahost");
// 获取节点操作人
public NodeOperator getCardInfo(Integer cid){
RecordSet rs = new RecordSet();
String sql="select h.WORKCODE,h.systemlanguage, a.WORKFLOWID,a.REQUESTID, a.NODEID , a.USERID , a.processUser ,a.preisremark,a.RECEIVEDATE, a.RECEIVETIME , rq.CREATEDATE ,rq.CREATETIME , a.isremark ,a.operatetype, a.HANDLEFORWARDID , wg.SIGNORDER , " +
"a.isbereject, n.ISSTART, n.ISREJECT , n.ISEND " +
"from workflow_currentoperator a left join workflow_nodebase n on n.id=a.nodeid left join hrmresource h on h.id=a.USERID left join workflow_groupdetail wg on wg.id=a.GROUPDETAILID " +
"left join workflow_requestbase rq on rq.REQUESTID=a.REQUESTID " +
"where a.id="+cid;;
// String sql="select h.WORKCODE, a.WORKFLOWID,a.REQUESTID, a.NODEID , a.USERID , a.processUser ,a.preisremark,a.RECEIVEDATE, a.RECEIVETIME , a.isremark ,a.operatetype, a.HANDLEFORWARDID , wg.SIGNORDER , a.isbereject, n.ISSTART, n.ISREJECT , n.ISEND " +
// "from workflow_currentoperator a left join workflow_nodebase n on n.id=a.nodeid left join hrmresource h on h.id=a.USERID left join workflow_groupdetail wg on wg.id=a.GROUPDETAILID " +
// "where a.id="+cid;
rs.executeQuery(sql);
if (rs.next()){
NodeOperator nodeOperator = new NodeOperator();
nodeOperator.setId(String.valueOf(cid));
nodeOperator.setLanguage(rs.getString("systemlanguage"));
nodeOperator.setWorkCode(rs.getString("WORKCODE"));
nodeOperator.setWorkflowId(rs.getString("WORKFLOWID"));
nodeOperator.setNodeId(rs.getString("NODEID"));
nodeOperator.setUserId(rs.getString("USERID"));
nodeOperator.setProcessUser(rs.getString("processUser"));
nodeOperator.setPreisremark(rs.getString("preisremark"));
nodeOperator.setIsremark(rs.getString("isremark"));
nodeOperator.setOperatetype(rs.getString("operatetype"));
nodeOperator.setHandleForwardId(rs.getString("HANDLEFORWARDID"));
nodeOperator.setSignOrder(rs.getString("SIGNORDER"));
nodeOperator.setIsReject(rs.getString("ISREJECT"));
nodeOperator.setIsEnd(rs.getString("ISEND"));
nodeOperator.setReceiveDate(rs.getString("RECEIVEDATE"));
nodeOperator.setReceiveTime(rs.getString("RECEIVETIME"));
nodeOperator.setRequestId(rs.getString("REQUESTID"));
nodeOperator.setIsStart(rs.getString("ISSTART"));
nodeOperator.setCreateDate(rs.getString("CREATEDATE"));
nodeOperator.setCreateTime(rs.getString("CREATETIME"));
nodeOperator.setIsbereject(Util.null2String(rs.getString("isbereject")));
return nodeOperator;
}
return null;
}
// 是否有必填字段
public boolean hasNeccessryField(String nodeid) {
RecordSet rs = new RecordSet();
rs.executeQuery("select NODEID from workflow_nodeform where NODEID =" + nodeid + " and ISMANDATORY =1");
if (rs.next()) {
return true;
}
return false;
}
// 卡片通用参数
private JSONArray getCardParam(List<String> filedNameList,String requestName, NodeOperator nodeOperator){
writeLog(">>>> get param ");
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 = '" + nodeOperator.getWorkflowId() + "'";
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 = '" + nodeOperator.getRequestId() + "'";
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, nodeOperator.getLanguage());
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); // 文件字段
writeLog("》》》 select item >> "+ JSON.toJSONString(selectItemMap));
writeLog("》》》 liulanMap >> "+ JSON.toJSONString(liulanMap));
for (String tempname : filedNameList) {
String labelName = labelMap.getOrDefault(tempname,tempname);
String value = paramMap.getOrDefault(tempname, "");
if (!"".equals(value)){
writeLog(">>> for tempname >> "+tempname);
if (selectItemMap.containsKey(tempname)){ // 选择框
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);
}
writeLog("> select item >> "+tempname+" >> "+valueList);
value = String.join(", ",valueList);
} else if (checkSet.contains(tempname)){ // check字段
writeLog("checkSet >> "+tempname+" >> "+value);
value= "1".equals(value) ? "Yes" : "No";
} else if (fileFieldSet.contains(tempname)){ // 附件字段
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);
writeLog("liulanMap >> "+tempname+" >> "+searchById);
String [] valueArray = value.split(",");
List<String> valueList = new ArrayList<>();
RecordSet queryTemp = new RecordSet();
for (String tempValue : valueArray){
writeLog("liulanMap >> "+tempname+" >> "+searchById+" >> "+tempValue);
queryTemp.executeQuery(searchById,tempValue);
if (queryTemp.next()){
String tempValueName = queryTemp.getString(1);
writeLog("query reuslt ");
valueList.add(tempValueName);
}else {
writeLog("query reuslt null");
}
}
value = String.join(", ",valueList);
} else if (commonLiuLanMap.containsKey(tempname)){ // 公共浏览框类型
String fieldType = commonLiuLanMap.get(tempname);
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")));
}
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")));
}
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")));
}
writeLog("request list >> "+ JSON.toJSONString(valueList3));
value = String.join(", ",valueList3);
break;
}
} else {
value = value.replace("&nbsp;", " ");
value = value.replace("<br>", " ");
}
}
writeLog("value123:"+value);
value = StringEscapeUtils.unescapeHtml4(value);
writeLog("value234:"+value);
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;
}
// 流程创建人
private Map<String,String> getRequestCreator(String requestid){
Map<String,String> map = new HashMap<>();
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);
if (recordSet.next()){
map.put("name",recordSet.getString("LASTNAME"));
map.put("code",recordSet.getString("WORKCODE"));
}
return map;
}
// 转发发送人
private Map<String, String> getTransByUser(NodeOperator nodeOperator) {
Map<String, String> map = new HashMap<>();
RecordSet recordSet = new RecordSet();
String sql = "select RECEIVEDPERSONIDS,h.LASTNAME, h.WORKCODE from workflow_requestlog a left join hrmresource h on h.id=a.OPERATOR " +
"where REQUESTID ="+nodeOperator.getRequestId()+" and logtype=7 and a.RECEIVEDPERSONIDS like '%"+nodeOperator.getUserId()+"%' and a.OPERATEDATE ='"+nodeOperator.getReceiveDate()+"' and a.OPERATETIME ='"+nodeOperator.getReceiveTime()+"'";
recordSet.executeQuery(sql);
outerLoop:
while (recordSet.next()){
String ids = Util.null2String(recordSet.getString("RECEIVEDPERSONIDS"));
String [] idArray = ids.split(",");
for(int i = 0; i<idArray.length;i++){
if (nodeOperator.getUserId().equals(idArray[i])){
map.put("name",recordSet.getString("LASTNAME"));
map.put("code",recordSet.getString("WORKCODE"));
break outerLoop;
}
}
}
return map;
}
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;
}
// 获取退回操作人
public Map<String,String> getRejectUser(NodeOperator nodeOperator){
Map<String,String> map = new HashMap<>();
RecordSet recordSet = new RecordSet();
recordSet.executeQuery("select h.WORKCODE, h.LASTNAME from workflow_currentoperator a left join hrmresource h on h.id=a.USERID " +
"where REQUESTID ="+nodeOperator.getRequestId()+" and operatetype =3 and a.userid=a.processUser order by OPERATEDATE desc ,operatetime desc");
if (recordSet.next()){
map.put("name",recordSet.getString("LASTNAME"));
map.put("code",recordSet.getString("WORKCODE"));
}
return map;
}
// 处理节点
public void submit(String requestname,String icon, List<String> fieldNameList, String callAuth, NodeOperator nodeOperator,String warnMsg){
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname, nodeOperator);
Map<String,String> sendUserMap = null;
sendUserMap = getRequestCreator(nodeOperator.getRequestId());
String senderCode = sendUserMap.get("code");
if ("1".equals(nodeOperator.getIsbereject())){
// sendUserMap = getRejectUser(nodeOperator);
Map<String,String> rejectUser = getRejectUser(nodeOperator);
senderCode = rejectUser.get("code");
} /*else {*/
// }
if ("1".equals(nodeOperator.getIsbereject())){
cardJsonArray.add(
// new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getReceiveDate() + " " + nodeOperator.getReceiveTime())
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getCreateDate() + " " + nodeOperator.getCreateTime())
);
}else {
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getCreateDate() + " " + nodeOperator.getCreateTime())
);
}
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", sendUserMap.get("name"))
);
String cardData = cardJsonArray.toJSONString();
writeLog("submit casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, nodeOperator.getRequestId());
if (null != warnMsg && !"".equals(warnMsg)){
cardInfo.setWarnMsg(warnMsg);
}
// 添加按钮
List<ButtonInfo> buttonInfos = new ArrayList<>();
boolean flag = hasNeccessryField(nodeOperator.getNodeId());//是否有必填字段
boolean isreject = "1".equals(nodeOperator.getIsReject());//是否可拒绝
if (isreject){ // 审批节点
if (flag){ // 有必填字段
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Process");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
btn1.setCallStatus("Confirmed");
buttonInfos.add(btn1);
} else {
/*按钮2*/
ButtonInfo btn2 = new ButtonInfo();
btn2.setName("Return");
btn2.setColor("#E11900");
btn2.setCallUrl(oaHost + "/api/workflow/paService/rejectRequest2");
btn2.setCallMethod("POST");
// 回调参数
JSONObject callParam2 = new JSONObject();
callParam2.put("requestId", nodeOperator.getRequestId());
callParam2.put("workflowid", nodeOperator.getWorkflowId());
btn2.setCallParam(callParam2.toJSONString());
btn2.setCallAuth(callAuth);
btn2.setCallStatus("Returned");
buttonInfos.add(btn2);
/*按钮1*/
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Confirm");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
btn1.setCallStatus("Confirmed");
buttonInfos.add(btn1);
}
} else { // 处理节点
if (flag){ // 有必填字段
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Process");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
btn1.setCallStatus("Submitted");
buttonInfos.add(btn1);
}else{
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Submit");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
btn1.setCallStatus("Submitted");
buttonInfos.add(btn1);
}
}
cardInfo.setButtonInfos(buttonInfos);
TodoCardService.createTodoCard(senderCode, nodeOperator.getWorkCode(), 1, nodeOperator.getId(), cardInfo);
}
// 催办
public void cuiban(String sendUserId, String requestname,String icon, List<String> fieldNameList, String callAuth, NodeOperator nodeOperator,String warnMsg,String expandMsg){
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname, nodeOperator);
Map<String,String> sendUserMap = null;
// if ("1".equals(nodeOperator.getIsbereject())){
// sendUserMap = getRejectUser(nodeOperator);
// } else {
sendUserMap = getRequestCreator(nodeOperator.getRequestId());
// }
// if ("1".equals(nodeOperator.getIsbereject())){
// cardJsonArray.add(
// new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getCreateDate() + " " + nodeOperator.getCreateTime())
// );
// }else {
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getCreateDate() + " " + nodeOperator.getCreateTime())
);
// }
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", sendUserMap.get("name"))
);
String cardData = cardJsonArray.toJSONString();
writeLog("submit casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, nodeOperator.getRequestId());
if (null != expandMsg && !"".equals(expandMsg)){
expandMsg = expandMsg.replace("&nbsp;"," ");
expandMsg = expandMsg.replace("<p>","");
expandMsg = expandMsg.replace("</p>","");
expandMsg = StringEscapeUtils.unescapeHtml4(expandMsg);
cardInfo.setExpandMsg(expandMsg);
}
if (null != warnMsg && !"".equals(warnMsg)){
cardInfo.setWarnMsg(warnMsg);
}
// 添加按钮
List<ButtonInfo> buttonInfos = new ArrayList<>();
boolean flag = hasNeccessryField(nodeOperator.getNodeId());//是否有必填字段
boolean isreject = "1".equals(nodeOperator.getIsReject());//是否可拒绝
if (isreject){ // 审批节点
if (flag){ // 有必填字段
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Process");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
btn1.setCallStatus("Submitted");
buttonInfos.add(btn1);
} else {
/*按钮2*/
ButtonInfo btn2 = new ButtonInfo();
btn2.setName("Return");
btn2.setColor("#E11900");
btn2.setCallUrl(oaHost + "/api/workflow/paService/rejectRequest2");
btn2.setCallMethod("POST");
// 回调参数
JSONObject callParam2 = new JSONObject();
callParam2.put("requestId", nodeOperator.getRequestId());
callParam2.put("workflowid", nodeOperator.getWorkflowId());
btn2.setCallParam(callParam2.toJSONString());
btn2.setCallAuth(callAuth);
btn2.setCallStatus("Returned");
buttonInfos.add(btn2);
/*按钮1*/
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Confirm");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
btn1.setCallStatus("Confirmed");
buttonInfos.add(btn1);
}
} else { // 处理节点
if (flag){ // 有必填字段
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Process");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
btn1.setCallStatus("Submitted");
buttonInfos.add(btn1);
}else{
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Submit");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
btn1.setCallStatus("Submitted");
buttonInfos.add(btn1);
}
}
cardInfo.setButtonInfos(buttonInfos);
if (null == nodeOperator.getId() || "".equals(nodeOperator.getId())){
nodeOperator.setId(UUID.randomUUID().toString());
}
if (null != sendUserId && !"".equals(sendUserId)){
RecordSet rs=new RecordSet();
rs.executeQuery("select WORKCODE, LASTNAME from hrmresource where id=?",sendUserId);
if (rs.next()){
String senderCode = rs.getString("WORKCODE");
if (null != senderCode && !"".equals(senderCode)){
TodoCardService.createTodoCard(senderCode, nodeOperator.getWorkCode(), 1, nodeOperator.getId(), cardInfo);
}
}
}
}
// 抄送(需提交)
public void copySendNeedSubmit(String requestname,String icon, List<String> fieldNameList, String callAuth, NodeOperator nodeOperator){
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname, nodeOperator);
Map<String,String> sendUserMap = getRequestCreator(nodeOperator.getRequestId());
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getCreateDate() + " " + nodeOperator.getCreateTime())
);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", sendUserMap.get("name"))
);
String cardData = cardJsonArray.toJSONString();
writeLog("copySendNeedSubmit casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, nodeOperator.getRequestId());
List<ButtonInfo> buttonInfos = new ArrayList<>();
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Submit");
btn1.setCallStatus("Submitted");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
buttonInfos.add(btn1);
cardInfo.setButtonInfos(buttonInfos);
TodoCardService.createTodoCard(sendUserMap.get("code"), nodeOperator.getWorkCode(), 1, nodeOperator.getId(), cardInfo);
}
// 传阅
public void chuanyue(String requestname,String icon, List<String> fieldNameList, String callAuth, NodeOperator nodeOperator){
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname, nodeOperator);
Map<String,String> sendUserMap = getRequestCreator(nodeOperator.getRequestId());
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getCreateDate() + " " + nodeOperator.getCreateTime())
);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", sendUserMap.get("name"))
);
String cardData = cardJsonArray.toJSONString();
writeLog("chuanyue casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, nodeOperator.getRequestId());
TodoCardService.createTodoCard(nodeOperator.getWorkCode(), nodeOperator.getWorkCode(), 1, nodeOperator.getId(), cardInfo);
}
// 抄送 抄送(不需提交)
public void copySend(String requestname,String icon, List<String> fieldNameList, String callAuth, NodeOperator nodeOperator){
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname, nodeOperator);
Map<String,String> sendUserMap = getRequestCreator(nodeOperator.getRequestId());
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getCreateDate() + " " + nodeOperator.getCreateTime())
);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", sendUserMap.get("name"))
);
String cardData = cardJsonArray.toJSONString();
writeLog("copySend casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, nodeOperator.getRequestId());
TodoCardService.createTodoCard(sendUserMap.get("code"), nodeOperator.getWorkCode(), 1, nodeOperator.getId(), cardInfo);
}
// 评论催办类型
public void shareCard(String sendUserId, String requestname,String icon, List<String> fieldNameList, NodeOperator nodeOperator, String expandMsg,String warnMsg){
writeLog("11>> share card expanmsg> "+expandMsg + " warmsgn > "+warnMsg);
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname, nodeOperator);
Map<String,String> sendUserMap = getRequestCreator(nodeOperator.getRequestId());
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getReceiveDate() + " " + nodeOperator.getReceiveTime())
);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", sendUserMap.get("name"))
);
String cardData = cardJsonArray.toJSONString();
writeLog("copySend casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, nodeOperator.getRequestId());
if (null != expandMsg && !"".equals(expandMsg)){
expandMsg = expandMsg.replace("&nbsp;"," ");
expandMsg = StringEscapeUtils.unescapeHtml4(expandMsg);
cardInfo.setExpandMsg(expandMsg); // 附件信息
}
if (null != warnMsg &&!"".equals(warnMsg)){
cardInfo.setWarnMsg(warnMsg);
}
String receiveCode = getCodeByUserid(nodeOperator.getUserId());
if (null == nodeOperator.getId() || "".equals(nodeOperator.getId())){
nodeOperator.setId(UUID.randomUUID().toString());
}
if (null != sendUserId && !"".equals(sendUserId)){
RecordSet rs=new RecordSet();
rs.executeQuery("select WORKCODE, LASTNAME from hrmresource where id=?",sendUserId);
if (rs.next()){
String senderCode = rs.getString("WORKCODE");
if (null != senderCode && !"".equals(senderCode)){
TodoCardService.createTodoCard(senderCode, receiveCode, 1, nodeOperator.getId(), cardInfo);
}
}
}
}
public String getCodeByUserid(String userid){
RecordSet recordSet = new RecordSet();
recordSet.executeQuery("select WORKCODE from hrmresource where id ="+userid);
if (recordSet.next()){
return recordSet.getString("WORKCODE");
}
return "";
}
// 转发卡片信息
public void transformCardInfo(String requestname,String icon, List<String> fieldNameList, String callAuth, NodeOperator nodeOperator){
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname, nodeOperator);
Map<String,String> sendUserMap = getTransByUser(nodeOperator);
Map<String,String> createUserMap = getRequestCreator(nodeOperator.getRequestId());
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getCreateDate() + " " + nodeOperator.getCreateTime())
);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", createUserMap.get("name"))
);
String cardData = cardJsonArray.toJSONString();
writeLog("transfer casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, nodeOperator.getRequestId());
List<ButtonInfo> buttonInfos = new ArrayList<>();
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Submit");
btn1.setCallStatus("Submitted");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
buttonInfos.add(btn1);
cardInfo.setButtonInfos(buttonInfos);
TodoCardService.createTodoCard(sendUserMap.get("code"), nodeOperator.getWorkCode(), 1, nodeOperator.getId(), cardInfo);
}
public void sendSignCardInfo(String requestname,String icon, List<String> fieldNameList, String callAuth, NodeOperator nodeOperator){
JSONArray cardJsonArray = getCardParam(fieldNameList, requestname, nodeOperator);
Map<String,String> sendUserMap = getTransByUser(nodeOperator);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Creator").fluentPut("value", sendUserMap.get("name"))
);
cardJsonArray.add(
new JSONObject().fluentPut("name", "Create Time").fluentPut("value", nodeOperator.getCreateDate() + " " + nodeOperator.getCreateTime())
);
String cardData = cardJsonArray.toJSONString();
writeLog("transfer casrdifno :: " + cardData);
CardInfo cardInfo = baseCardInfo(requestname,"", icon, cardData, nodeOperator.getRequestId());
List<ButtonInfo> buttonInfos = new ArrayList<>();
ButtonInfo btn1 = new ButtonInfo();
btn1.setName("Submit");
btn1.setCallStatus("Submitted");
btn1.setColor("#4477EE");
btn1.setCallUrl(oaHost + "/api/workflow/paService/submitRequest2");
btn1.setCallMethod("POST");
// 回调参数
JSONObject callParam = new JSONObject();
callParam.put("requestId", nodeOperator.getRequestId());
callParam.put("workflowid", nodeOperator.getWorkflowId());
btn1.setCallParam(callParam.toJSONString());
btn1.setCallAuth(callAuth);
buttonInfos.add(btn1);
cardInfo.setButtonInfos(buttonInfos);
TodoCardService.createTodoCard(sendUserMap.get("code"), nodeOperator.getWorkCode(), 1, nodeOperator.getId(), cardInfo);
}
}

@ -0,0 +1,145 @@
package com.customization.wfTodoCard.impl;
import com.customization.wfTodoCard.service.CheckSendCardService;
import com.weaverboot.frame.ioc.anno.classAnno.WeaIocReplaceComponent;
import com.weaverboot.frame.ioc.anno.methodAnno.WeaReplaceAfter;
import com.weaverboot.frame.ioc.handler.replace.weaReplaceParam.impl.WeaAfterReplaceParam;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.nodes.TextNode;
import org.jsoup.select.Elements;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import weaver.workflow.request.RequestSignRelevanceWithMe;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@WeaIocReplaceComponent
public class ReplaceZhuanBan extends BaseBean {
/*
*
* */
@WeaReplaceAfter(value = "/api/workflow/reqform/remarkOperate",order = 1)
public String execute(WeaAfterReplaceParam weaAfterReplaceParam){
HttpServletRequest request = weaAfterReplaceParam.getRequest();
//获取请求参数
String requestid = Util.null2String(request.getParameter("requestid"),"");
String forwardflag = Util.null2String(request.getParameter("forwardflag"),""); // 转发标记=3
if ("".equals(requestid) || "-1".equals(requestid) || !"3".equals(forwardflag)){
return weaAfterReplaceParam.getData();
}
String isSendCard = Util.null2String(request.getParameter("isSendCard"),""); // 是否发送消息
String field5 = Util.null2String(request.getParameter("field5"),""); // 接收人id
String remark;
if (isSendCard.equals("1")){
remark = Util.null2String(request.getParameter("remark"),""); // 评论数据
} else {
remark = "";
}
if ("".equals(field5)){
return weaAfterReplaceParam.getData();
}
User user = HrmUserVarify.getUser(request , weaAfterReplaceParam.getResponse()) ;
String shareuserid = String.valueOf(user.getUID());
writeLog("shareuserid>> "+shareuserid);
try {
CompletableFuture.runAsync(()->{
try {
String sendMsg = "";
if (!"".equals(remark)){
Document doc = Jsoup.parse(remark);
// 选择所有的 <p> 标签
Elements pTags = doc.select("p");
for (int i = 0; i < pTags.size(); i++) {
Element pTag = pTags.get(i);
// 获取 <p> 标签内的子节点列表
List<Node> childNodes = pTag.clone().childNodes();
// 按顺序将子节点插入到 <p> 标签的位置
for (int j = childNodes.size() - 1; j >= 0; j--) {
pTag.after(childNodes.get(j));
}
// 移除 <p> 标签
pTag.remove();
}
// 选择所有的 <a> 标签
Elements aTags = doc.select("a");
for (int i = 0; i < aTags.size(); i++) {
Element aTag = aTags.get(i);
// 获取 atsome-name 属性值作为人名
String name = aTag.attr("atsome-name");
if (!name.isEmpty()) {
// 创建文本节点
TextNode textNode = new TextNode("@" + name, doc.baseUri());
// 在 <a> 标签后面插入文本节点
aTag.after(textNode);
// 移除 <a> 标签
aTag.remove();
}
}
sendMsg = doc.body().html();
}
writeLog("====》 shareuser id is ::: " + shareuserid);
RecordSet query = new RecordSet();
query.executeQuery("select CREATER from workflow_requestbase a where REQUESTID =?", requestid);
String creator = "";
if (query.next()) {
creator = query.getString("CREATER");
}
String [] uids = field5.split(",");
for (String uid : uids) {
query.executeQuery("select id,NODEID, ISCOMPLETE from workflow_currentoperator where HANDLEFORWARDID is not null and ISLASTTIMES =1 and REQUESTID =? and USERID =?", requestid, uid);
if (query.next()) {
Integer cid = query.getInt("id");
Integer nodeid = query.getInt("NODEID");
String iscomplete = query.getString("ISCOMPLETE");
String language = "";
query.executeQuery("select systemlanguage from hrmresource h where id=?", uid);
if (query.next()) {
language = query.getString("systemlanguage");
}
boolean complete = "1".equals(iscomplete);
new CheckSendCardService().checkSendRequestCardInfo(cid, Integer.parseInt(requestid), nodeid, Integer.parseInt(uid), "1", language, complete,false, true,sendMsg, shareuserid, null);
}
}
RequestSignRelevanceWithMe reqsignwm = new RequestSignRelevanceWithMe();
List<String> atResourceids = reqsignwm.parseRemark(remark);
for (String atResourceid : atResourceids) {
new CheckSendCardService().sendShareCard(creator, atResourceid, String.valueOf(requestid),"",sendMsg,null);
}
}catch (Exception e){
writeLog("sync task send zhuanban error>> "+e.getMessage());
}
});
}catch (Exception e){
writeLog("send zhuanban error >> "+e.getMessage(), e);
}
//将原有接口报文返回
return weaAfterReplaceParam.getData();
}
}

@ -0,0 +1,28 @@
package com.customization.wfTodoCard.service;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
public class CardUserInfoService extends BaseBean {
public User getUserById(Integer uid){
RecordSet rs=new RecordSet();
rs.executeSql("select id,LOGINID,LASTNAME,SYSTEMLANGUAGE,EMAIL,LOCATIONID,SECLEVEL, " +
"DEPARTMENTID, SUBCOMPANYID1 from hrmresource where id="+uid);
if (rs.next()){
User user=new User();
user.setUid(rs.getInt("id"));
user.setLoginid(rs.getString("LOGINID"));
user.setLastname(rs.getString("LASTNAME"));
user.setEmail(Util.null2String(rs.getString("EMAIL")));
user.setLocationid(Util.null2String(rs.getString("LOCATIONID")));
user.setSeclevel(Util.null2String(rs.getString("SECLEVEL")));
user.setUserDepartment(rs.getInt("DEPARTMENTID"));
user.setUserSubCompany1(Integer.parseInt(Util.null2String(rs.getString("SUBCOMPANYID1"),"0")));
return user;
}else return null;
}
}

@ -0,0 +1,222 @@
package com.customization.wfTodoCard.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.ofs.interfaces.SendRequestStatusDataInterfaces;
import weaver.workflow.request.todo.DataObj;
import java.util.ArrayList;
import java.util.List;
public class ListenSendRequestInfo extends BaseBean implements SendRequestStatusDataInterfaces{
/**
* id
*/
public String id ;
/**
*
*/
public String syscode ;
/**
* URL
*/
public String serverurl ;
/**
*
*/
public ArrayList<String> workflowwhitelist ;
/**
*
*/
public ArrayList<String> userwhitelist ;
public String getId() {
return id;
}
public String getSyscode() {
return syscode;
}
public String getServerurl() {
return serverurl;
}
public ArrayList<String> getWorkflowwhitelist() {
return workflowwhitelist;
}
public ArrayList<String> getUserwhitelist() {
return userwhitelist;
}
@Override
public void SendRequestStatusData(ArrayList<DataObj> arrayList) {
// String jsonStr = JSON.toJSONString(arrayList);
JSONArray array = JSON.parseArray(JSON.toJSONString(arrayList));
String jsonData = array.toJSONString();
writeLog("统一消息待办:"+jsonData);
if (array.size() > 0){
for(int i = 0; i<array.size();i++){
JSONObject dataJson = array.getJSONObject(i);
String requestid = dataJson.getString("requestid");
if (dataJson.containsKey("requestid")){
if (null == requestid || "".equals(requestid)){
continue;
}
// 已办发送更新卡片
JSONArray doneDatas = dataJson.getJSONArray("donedatas");
boolean hasDond = doneDatas.size()>0;
if (hasDond){
List<Integer> cids = new ArrayList<>();
String nodeid="";
for(int j=0; j<doneDatas.size();j++) {
JSONObject doneData = doneDatas.getJSONObject(j);
Integer cid=doneData.getInteger("cid"); // 操作记录id
nodeid = doneData.getString("nodeid");
cids.add(cid);
String requeststatus = doneData.getString("requeststatus");
// if (!requeststatus.contains("撤回")){
try {
new CheckSendCardService().sendUpdateCardInfo(cid, requeststatus);
}catch (Exception e){
writeLog("统一消息待办:发送更新卡片消息:" + e.getMessage(), e);
}
// } else {
// try {
// handleReback(cids);
// }catch (Exception e){
// writeLog("统一消息待办:撤回消息:" + e.getMessage(), e);
// }
// }
}
checkDone(nodeid, requestid);
}
// 发送待办卡片
JSONArray todoDatas = dataJson.getJSONArray("tododatas");
boolean hasTodo = todoDatas.size()>0;
Integer todoUserid=0; // 是否是同一个人的待办
if (hasTodo){
for(int j = 0; j<todoDatas.size();j++){
JSONObject todoData = todoDatas.getJSONObject(j);
Integer cid=todoData.getInteger("cid"); // 操作记录id
if (isZhuanBan(cid)){ // 跳过转办,转办单独发送
continue;
}
Integer nodeid = todoData.getInteger("nodeid");
String iscomplete = todoData.getString("iscomplete");
JSONObject userJson = todoData.getJSONObject("user");
Integer uid= userJson.getInteger("uID");
if (todoUserid == 0){
todoUserid = uid;
}else if (!todoUserid.equals(uid) && todoUserid!=-1){
todoUserid=-1;
}
String logintype = userJson.getString("logintype");
String language = userJson.getString("language");
boolean complete = iscomplete.equals("1"); // 是否归档节点
new CheckSendCardService().checkSendRequestCardInfo(cid, Integer.parseInt(requestid), nodeid, uid, logintype, language, complete,false, false,"", null, null);
}
}
// 强制干预/删除/撤销 - 撤销代理
JSONArray deldatas = dataJson.getJSONArray("deldatas");
boolean hasDel = deldatas.size()>0;
if (hasDel){
Integer delNodeid = null;
for (int j = 0; j<deldatas.size();j++){
JSONObject deldata = deldatas.getJSONObject(j);
Integer cid = deldata.getInteger("cid"); // 操作记录id
Integer nodeid = deldata.getInteger("nodeid");
Integer workflowid=deldata.getInteger("workflowid");
String requeststatus = deldata.getString("requeststatus");
String receivedate = deldata.getString("receivedate");
String receivetime = deldata.getString("receivetime");
Integer userid = deldata.getJSONObject("user").getInteger("uID");
if (checkIfHanderd(cid)){
new CheckSendCardService().sendDelCardInfo(workflowid,requestid,String.valueOf(cid), String.valueOf(userid), requeststatus, todoUserid,receivedate, receivetime);
}
delNodeid=nodeid;
}
new CheckSendCardService().checkCheXiao(requestid); // 检查撤销操作有没有漏发
new CheckSendCardService().checkWithdraw(requestid, delNodeid); // 检查撤回流程操作有没有漏发
}
}
}
}
}
// 检查已办数据是否都更新了
public void checkDone(String nodeid, String requestid){
RecordSet rs = new RecordSet();
rs.executeQuery("select CURRENTNODEID from workflow_requestbase where requestid = ?",requestid);
if (rs.next()){
String currentNodeid = rs.getString("CURRENTNODEID");
if (!nodeid.equals(currentNodeid)){ // 不是当前节点,检查是否有没有发送的数据
rs.executeQuery(
"select id, bizid, receiver from temp_cardmsg a " +
"where isremark =0 and updatestatus =''and nodeid =? " +
"and exists (select id from workflow_currentoperator where id=a.bizid and processUser != userid ) ",
nodeid
);
while (rs.next()){
Integer bizid = rs.getInt("bizid");
new CheckSendCardService().sendUpdateCardInfo(bizid, "");
}
}
}
}
public boolean checkIfHanderd(Integer cid){
RecordSet query=new RecordSet();
query.executeQuery("select id from temp_cardmsg tc where bizid =? and updatestatus = ''",cid);
return query.next();
}
// 处理撤回
public void handleReback(List<Integer> cids){
Integer id1 = cids.get(0);
RecordSet rs = new RecordSet();
String conditionSql = "select a.id,a.WORKFLOWID, a.REQUESTID, a.NODEID,a.RECEIVEDATE, a.RECEIVETIME, b.LASTOPERATOR, h.WORKCODE, h.LASTNAME " +
"from workflow_currentoperator a " +
"left join workflow_requestbase b on a.REQUESTID =b.REQUESTID " +
"left join hrmresource h on h.id=b.LASTOPERATOR " +
"where a.id = "+id1;;
rs.execute(conditionSql);
if (rs.next()){
String requestid = rs.getString("REQUESTID");
Integer nodeid = rs.getInt("NODEID");
String receivedate = rs.getString("RECEIVEDATE");
String receivetime = rs.getString("RECEIVETIME");
String lastname = rs.getString("LASTNAME");
rs.executeQuery(
"select a.id, h.WORKCODE " +
"from workflow_currentoperator a left join hrmresource h on h.id=a.USERID " +
"where a.REQUESTID="+requestid+" and a.NODEID = "+nodeid+" and a.RECEIVEDATE >='"+receivedate+"' and a.RECEIVETIME >='"+receivetime+"' and h.WORKCODE is not null"
);
while (rs.next()){
String id = rs.getString("id");
String workcode1 = rs.getString("WORKCODE");
new CheckSendCardService().updateCardRecalled(id, workcode1,lastname);
}
}
}
// 判断是否是转办
public boolean isZhuanBan(Integer cid){
RecordSet query = new RecordSet();
query.executeQuery("select id from workflow_currentoperator where id=? and HANDLEFORWARDID is not null",cid);
return query.next();
}
}

@ -0,0 +1,216 @@
package com.customization.wfTodoCard.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.customization.wfTodoCard.CardInfo;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.util.EntityUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import javax.net.ssl.*;
import java.nio.charset.StandardCharsets;
import static weaver.file.Prop.getPropValue;
public class TodoCardService {
private static BaseBean baseBean = new BaseBean();
private static String source = "OA" ; //
/**
*
* @param sender UserCode
* @param receiver UserCodegroupId
* @param chatType 121
* @param bizMsgId Id
* @param cardInfo
* @return Id
*/
public static String createTodoCard(String sender, String receiver, Integer chatType, String bizMsgId, CardInfo cardInfo) {
baseBean.writeLog("start cretae todo card >>>>>>>>>>> sender======>" + sender + " receiver======>" + receiver + " chatType======>" + chatType + " bizMsgId======>" + bizMsgId + " cardInfo======>" + cardInfo);
addSendRecord(sender,receiver, bizMsgId,"", "待办", JSON.toJSONString(cardInfo));
String createUrl = getPropValue("workflowTodoCard", "createUrl");
String tenantId = Util.null2String(getPropValue("workflowTodoCard", "tenantId"));
String appkey = Util.null2String(getPropValue("workflowTodoCard", "appkey"));
try {
SSLContext sslContext = SSLContextBuilder.create()
.loadTrustMaterial(new TrustSelfSignedStrategy())
.build();
// 创建 HttpClient跳过主机名验证
SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(
sslContext,
NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(csf)
.build();
baseBean.writeLog("send card msg > createurl======>" + createUrl + " tenantId======>" + tenantId);
// 创建 HttpPost 请求
HttpPost httpPost = new HttpPost(createUrl);
httpPost.setHeader("appkey",appkey);
httpPost.setHeader("Content-Type", "application/json");
// httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");
// httpPost.setHeader("Content-Type", "application/json;charset=GBK");
JSONObject jsonObject = new JSONObject();
jsonObject.put("tenantId",tenantId);
jsonObject.put("sender", sender);
jsonObject.put("receiver", receiver);
jsonObject.put("chatType", chatType);
jsonObject.put("bizMsgId", bizMsgId);
jsonObject.put("cardInfo", cardInfo);
jsonObject.put("source", source);
String jsonData = jsonObject.toString();
// baseBean.writeLog("card info json1: " + jsonData);
// jsonData = StringEscapeUtils.unescapeHtml4(jsonData);
// baseBean.writeLog("card info json2: " + jsonData);
StringEntity entity = new StringEntity(jsonData,ContentType.create("application/json", "UTF-8"));
httpPost.setEntity(entity);
// 发送请求并获取响应
HttpResponse response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
String result = EntityUtils.toString(responseEntity);
baseBean.writeLog("send card msg > 4:: "+result);
Header[] headers = response.getAllHeaders();
for (Header header : headers) {
if (header.getName().equals("ITRACING_TRACE_ID")){
baseBean.writeLog(">>ITRACING_TRACE_ID======>" + header.getValue());
}
}
// 关闭 HttpClient
httpClient.close();
return result;
}catch (Exception e){
baseBean.writeLog("send createCard error =======>" + e.getMessage(), e);
}
return "error";
}
public static String updateTodoCard(String operator, String bizId, String status) {
baseBean.writeLog("start update todo card >>>>>>>>>>>");
if (status.endsWith("?")) status.replace("?","");
logUpdateStatus(bizId, status);
try {
SSLContext sslContext = SSLContextBuilder.create()
.loadTrustMaterial(new TrustSelfSignedStrategy())
.build();
// 创建 HttpClient跳过主机名验证
SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(
sslContext,
NoopHostnameVerifier.INSTANCE);
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(csf)
.build();
String updateUrl = getPropValue("workflowTodoCard", "updateUrl");
String tenantId = Util.null2String(getPropValue("workflowTodoCard", "tenantId"));
String appkey = Util.null2String(getPropValue("workflowTodoCard", "appkey"));
// 创建 HttpPost 请求
HttpPost httpPost = new HttpPost(updateUrl);
httpPost.setHeader("appkey",appkey);
httpPost.setHeader("Content-Type", ContentType.APPLICATION_JSON.getMimeType());
httpPost.setHeader("Accept", "application/json");
JSONObject jsonObject = new JSONObject();
jsonObject.put("tenantId",tenantId);
jsonObject.put("source", source);
jsonObject.put("bizMsgId", bizId);
jsonObject.put("operator", operator);
jsonObject.put("status", status);
String jsonData2 = jsonObject.toString();
baseBean.writeLog("update card jsonData2: " + jsonData2);
baseBean.writeLog("update card info status: " + status);
String jsonData = "{\"tenantId\":\"" + tenantId + "\",\"source\":\"" + source + "\",\"bizMsgId\":\"" + bizId + "\",\"operator\":\"" + operator + "\",\"status\":\"" + status + "\"}";
baseBean.writeLog("update card info json: " + jsonData);
StringEntity entity = new StringEntity(jsonData, StandardCharsets.UTF_8);
// StringEntity entity = new StringEntity(jsonData);
entity.setContentType("application/json");
httpPost.setEntity(entity);
// 发送请求并获取响应
HttpResponse response = httpClient.execute(httpPost);
baseBean.writeLog("Response Code: " + response.getStatusLine().getStatusCode());
HttpEntity responseEntity = response.getEntity();
String result = EntityUtils.toString(responseEntity);
baseBean.writeLog("send card msg > :: "+result);
Header[] headers = response.getAllHeaders();
for (Header header : headers) {
if (header.getName().equals("ITRACING_TRACE_ID")){
baseBean.writeLog(">>ITRACING_TRACE_ID======>" + header.getValue());
}
}
// 关闭 HttpClient
httpClient.close();
return result;
}catch (Exception e){
baseBean.writeLog("send createCard error =======>" + e.getMessage(), e);
}
return "error";
}
static void addSendRecord(String sender, String receiver, String bizMsgId, String status, String type,String param){
// String sql="INSERT INTO temp_cardmsg(sender, receiver, bizid, ctype, updatestatus, param)VALUES(?,?,?,?,?,?)";
RecordSet rs = new RecordSet();
String checksql = "select id from workflow_currentoperator where id =?";
rs.executeQuery(checksql, bizMsgId);
if (rs.next()){
String sql = "INSERT INTO temp_cardmsg(requestid, nodeid,isremark,sender, receiver, bizid, ctype, updatestatus, param) " +
"select REQUESTID, NODEID,isremark, ?,?,?,?,?,? from workflow_currentoperator where id = ?";
rs.executeUpdate(sql, sender, receiver, bizMsgId, type, status,param, bizMsgId);
} else {
String sql = "INSERT INTO temp_cardmsg(sender, receiver, bizid, ctype, updatestatus, param) values(?,?,?,?,?,?)" ;
rs.executeUpdate(sql,sender, receiver, bizMsgId, type, status,param);
}
}
static void logUpdateStatus(String bizMsgId, String status){
RecordSet rs = new RecordSet();
String sql = "update temp_cardmsg set updatestatus=? where bizid=?";
rs.executeUpdate(sql, status, bizMsgId);
}
}

@ -0,0 +1,197 @@
package com.engine.dito.hrm;
import com.alibaba.fastjson.JSONObject;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.dito.excel.service.ImportExcelService;
import com.engine.dito.excel.service.impl.ImportExcelServiceImpl;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import java.util.HashMap;
import java.util.Map;
public class HrmConvertAction {
@GET
@Path("/staffcode")
@Produces({MediaType.TEXT_PLAIN})
public String staffcodeConvert(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String,Object> apidatas = new HashMap<String,Object>();
BaseBean bb = new BaseBean();
try{
String staffcode = request.getParameter("staffcode");
String status = request.getParameter("status");
String where = " and status in(0,1,2,3) " ;
if("all".equals(status)){
where = "";
}
RecordSet rs = new RecordSet();
String userid = "";
if(StringUtils.isNotBlank(staffcode)){
String sql = "select id from hrmresource where workcode = ? " +where ;
rs.executeQuery(sql,new Object[]{staffcode});
if(rs.next()){
userid = Util.null2String(rs.getString("id"));
}
}
apidatas.put("userid",userid);
apidatas.put("api_status",true);
}catch (Exception e){
apidatas.put("api_status",false);
apidatas.put("api_errormsg","exception:"+e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
@GET
@Path("/loginid")
@Produces({MediaType.TEXT_PLAIN})
public String loginidConvert(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
String loginid = request.getParameter("loginid");
String status = request.getParameter("status");
String where = " and status in(0,1,2,3) " ;
if("all".equals(status)){
where = "";
}
RecordSet rs = new RecordSet();
String userid = "";
if(StringUtils.isNotBlank(loginid)){
String sql = "select id from hrmresource where loginid = ? " + where;
rs.executeQuery(sql,new Object[]{loginid});
if(rs.next()){
userid = Util.null2String(rs.getString("id"));
}
}
apidatas.put("userid",userid);
apidatas.put("api_status",true);
}catch (Exception e){
apidatas.put("api_status",false);
apidatas.put("api_errormsg","exception:"+e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
@GET
@Path("/staffid")
@Produces({MediaType.TEXT_PLAIN})
public String staffidConvert(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
String staffid = request.getParameter("staffid");
String status = request.getParameter("status");
String where = " and status in(0,1,2,3) " ;
if("all".equals(status)){
where = "";
}
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
RecordSet rs = new RecordSet();
String userid = "";
if(StringUtils.isNotBlank(staffid)){
String sql = " select id from cus_fielddata where "+cus_staff+" = ? and scope = ? and scopeid = ? and id in( select id from hrmresource where 1=1 " + where +") ";
rs.executeQuery(sql,new Object[]{staffid,scope,scopeid});
if(rs.next()){
userid = Util.null2String(rs.getString("id"));
}
}
apidatas.put("userid",userid);
apidatas.put("api_status",true);
}catch (Exception e){
apidatas.put("api_status",false);
apidatas.put("api_errormsg","exception:"+e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
@GET
@Path("/eid")
@Produces({MediaType.TEXT_PLAIN})
public String eidConvert(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
String eid = request.getParameter("eid");
String status = request.getParameter("status");
String where = " and status in(0,1,2,3) " ;
if("all".equals(status)){
where = "";
}
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String cus_eid = PropBean.getUfPropValue("cus_eid") ;
RecordSet rs = new RecordSet();
String userid = "";
if(StringUtils.isNotBlank(eid)){
String sql = " select id from cus_fielddata where "+cus_eid+" = ? and scope = ? and scopeid = ? and id in( select id from hrmresource where 1=1 " + where +") ";
rs.executeQuery(sql,new Object[]{eid,scope,scopeid});
if(rs.next()){
userid = Util.null2String(rs.getString("id"));
}
}
apidatas.put("userid",userid);
apidatas.put("api_status",true);
}catch (Exception e){
apidatas.put("api_status",false);
apidatas.put("api_errormsg","exception:"+e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
@GET
@Path("/sysuserid")
@Produces({MediaType.TEXT_PLAIN})
public String sysuseridConvert(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
String sysuserid = request.getParameter("sysuserid");
String status = request.getParameter("status");
String where = " and status in(0,1,2,3) " ;
if("all".equals(status)){
where = "";
}
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String cus_sysuserid = PropBean.getUfPropValue("cus_sysuserid") ;
RecordSet rs = new RecordSet();
String userid = "";
if(StringUtils.isNotBlank(sysuserid)){
String sql = " select id from cus_fielddata where "+cus_sysuserid+" = ? and scope = ? and scopeid = ? and id in( select id from hrmresource where 1=1 " + where +") ";
rs.executeQuery(sql,new Object[]{sysuserid,scope,scopeid});
if(rs.next()){
userid = Util.null2String(rs.getString("id"));
}
}
apidatas.put("userid",userid);
apidatas.put("api_status",true);
}catch (Exception e){
apidatas.put("api_status",false);
apidatas.put("api_errormsg","exception:"+e.getMessage());
}
return JSONObject.toJSONString(apidatas);
}
}

@ -0,0 +1,344 @@
package com.engine.workflow.cmd.requestForm;
import com.api.workflow.util.ServiceUtil;
import com.cloudstore.dev.api.util.Util_TableMap;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.workflow.biz.WorkflowTestBiz;
import com.engine.workflow.biz.publicApi.RequestOperateBiz;
import com.engine.workflow.biz.requestForm.RequestRemindBiz;
import com.engine.workflow.biz.requestForm.SubmitErrorMsgBiz;
import com.engine.workflow.biz.requestForm.TestWorkflowCheckBiz;
import com.engine.workflow.biz.requestList.RequestAttentionBiz;
import com.engine.workflow.biz.workflowOvertime.OvertimeBiz;
import com.engine.workflow.constant.RemindTypeEnum;
import com.engine.workflow.constant.requestForm.RequestExecuteType;
import com.engine.workflow.entity.requestForm.RequestOperationResultBean;
import weaver.conn.RecordSet;
import weaver.file.FileUpload;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.forceback.RequestForceBackUtil;
import weaver.systeminfo.SystemEnv;
import weaver.workflow.agent.AgentManager;
import weaver.workflow.msg.MsgPushUtil;
import weaver.workflow.msg.entity.MsgEntity;
import weaver.workflow.request.RequestAnnexUpload;
import weaver.workflow.request.RequestOperationMsgManager;
import weaver.workflow.request.WFUrgerManager;
import weaver.workflow.workflow.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
* @author liuzy 2018/5/4
*/
public class FunctionManageCmd extends AbstractCommonCommand<Map<String,Object>>{
private HttpServletRequest request;
private HttpServletResponse response;
public FunctionManageCmd(HttpServletRequest request, HttpServletResponse response, User user){
this.request = request;
this.response = response;
this.user = user;
}
public Map<String,Object> execute(CommandContext commandContext){
Map<String, Object> apidatas = new HashMap<String, Object>();
Map<String, String> resultmap = new HashMap<String, String>();
int logintype = Util.getIntValue(user.getLogintype());
int requestid = Util.getIntValue(request.getParameter("requestid"), 0);
String flag = Util.null2String(request.getParameter("flag"));
WfFunctionManageUtil wffmu = new WfFunctionManageUtil();
ArrayList<String> requestidlist = new ArrayList<String>();
int formid = Util.getIntValue(request.getParameter("formid"), 0);
int requestLogId = Util.getIntValue(request.getParameter("workflowRequestLogId"), 0);
String signdocids = Util.null2String(request.getParameter("signdocids"));
String signworkflowids = Util.null2String(request.getParameter("signworkflowids"));
String remark = Util.null2String(request.getParameter("remark"));
int workflowid = Util.getIntValue(request.getParameter("workflowid"), 0);
int nodeid = -1;
String isnew = new BaseBean().getPropValue("WorkflowOvertimeIsNew" , "isNew");
boolean isnewFlag = "1".equals(isnew);
// 流程暂停
if ("stop".equals(flag)) {
wffmu.setStopOperation(requestid, user);
// this.pushOperationMsg(requestid,user,flag);
if(isnewFlag)
OvertimeBiz.getInstance().cancelOvertimeTask(requestid, nodeid);//取消超时任务
}
// 流程撤销
if ("cancel".equals(flag)) {
wffmu.setCancelOperation(requestid, user);
// this.pushOperationMsg(requestid,user,flag);
if(isnewFlag)
OvertimeBiz.getInstance().cancelOvertimeTask(requestid, nodeid);//取消超时任务
}
// 流程启用
if ("restart".equals(flag)) {
wffmu.setRestartOperation(requestid, user);
// this.pushOperationMsg(requestid,user,flag);
if(isnewFlag)
OvertimeBiz.getInstance().addOvertimeTaskThread(requestid, workflowid, nodeid);//添加超时任务
}
// 强制归档
if ("ov".equals(flag)) {
WfForceOver wfo = new WfForceOver();
String annexdocids = "";
String fromflow = Util.null2String(request.getParameter("fromflow"));
String remarkLocation = Util.null2String(request.getParameter("remarkLocation"));
int agentType = Util.getIntValue(Util.null2String(request.getParameter("agentType")));
int agentorByAgentId = Util.getIntValue(Util.null2String(request.getParameter("agentorByAgentId")));
if (agentType == 1) {//流程代理出去,本人强制归档,需先收回代理
AgentManager agentManager = new AgentManager(user);
agentManager.agentBackRequest(agentorByAgentId, user.getUID(), workflowid + "", requestid);
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");
SimpleDateFormat timeForamt = new SimpleDateFormat("HH:mm:ss");
new RecordSet().executeUpdate("update workflow_currentoperator set operatedate = ? , operatetime = ? where userid = ? and requestid = ? and (operatedate is null or operatedate < ' ' ) ",
dateFormat.format(currentDate), timeForamt.format(currentDate), user.getUID(), requestid);
}
if (fromflow.equals("1")) {
FileUpload fu = new FileUpload(request);
remark = Util.null2String(fu.getParameter("remark"));
workflowid = Util.getIntValue(fu.getParameter("workflowid"), -1);
nodeid = Util.getIntValue(fu.getParameter("nodeid"), -1);
// 获取签字意见相关文档,相关流程
signdocids = Util.null2String(fu.getParameter("signdocids"));
signworkflowids = Util.null2String(fu.getParameter("signworkflowids"));
String ismode = Util.null2String(request.getParameter("ismode"));
if (!ismode.equals("1")) {
RequestAnnexUpload rau = new RequestAnnexUpload();
rau.setRequest(fu);
rau.setUser(user);
annexdocids = rau.AnnexUpload();
} else {
String hasSign = "0";// 模板中是否设置了签字
RecordSet rs = new RecordSet();
rs.executeSql("select * from workflow_modeview where formid=" + formid + " and nodeid=" + nodeid + " and fieldid=-4");
if (rs.next())
hasSign = "1";
if ("1".equals(hasSign)) {// 模板中设置了签字
annexdocids = Util.null2String(fu.getParameter("qianzi"));
} else {// 模板中没有设置签字,按普通方式上传签字意见的附件
RequestAnnexUpload rau = new RequestAnnexUpload();
rau.setRequest(fu);
rau.setUser(user);
annexdocids = rau.AnnexUpload();
}
}
WFManager wfManager = new WFManager();
wfManager.setWfid(workflowid);
try {
wfManager.getWfInfo();
} catch (Exception e) {
e.printStackTrace();
}
String isShowChart = Util.null2s(wfManager.getIsShowChart().trim(),"0");
apidatas.put("isShowChart", isShowChart);
}
wfo.setRemark(remark);
wfo.setAnnexdocids(annexdocids);
wfo.setSigndocids(signdocids);
wfo.setSignworkflowids(signworkflowids);
wfo.setRequestLogId(requestLogId);
wfo.setRemarkLocation(remarkLocation);
WFUrgerManager wfum = new WFUrgerManager();
if (wffmu.haveOtherOperationRight(requestid) && !wfo.isOver(requestid) && (wfo.isNodeOperator(requestid, user.getUID()) || wfum.getMonitorViewRight(requestid, user.getUID()))) {
requestidlist.add("" + requestid);
wfo.doForceOver(requestidlist, request, response, user);
apidatas.put("success",1);
if(isnewFlag)
OvertimeBiz.getInstance().cancelOvertimeTask(requestid, nodeid);//取消超时任务
}else{
apidatas.put("success",0);
}
//判断是否属于流程测试
TestWorkflowCheckBiz testBiz = new TestWorkflowCheckBiz();
boolean belongTest = testBiz.judgeBelongTest(request, false);
if(belongTest) {
RecordSet rs = new RecordSet();
rs.executeQuery("select nodeid from workflow_flownode where workflowid = ? and nodetype = 3",workflowid);
rs.next();
WorkflowTestBiz.setWorkflowTestInfo(flag, requestid, nodeid, "", null,rs.getInt("nodeid"));
}
this.doArchiveRemind(workflowid,requestid);
new weaver.cpt.util.CptWfUtil().releaseFrozenCptnum(requestid+""); //清除资产冻结
}
// 强制收回
if ("rb".equals(flag)) {
BaseBean bb = new BaseBean();
bb.writeLog("FunctionManageCmd:requestid:"+requestid);
List<Map<String, String>> remark89List = new ArrayList<Map<String, String>>();
List<Map<String, String>> atList = new ArrayList<Map<String, String>>();
List<Map<String, String>> forwardList = new ArrayList<Map<String, String>>();
try {
RequestForceBackUtil requestForceBackUtil = new RequestForceBackUtil();
remark89List = requestForceBackUtil.queryRequestRemark89ByForceBack(requestid+"");
requestForceBackUtil.queryRequestAtByForceBack(requestid+"");
requestForceBackUtil.queryRequestForwardByForceBack(requestid+"");
}catch (Exception e){
e.printStackTrace();
new BaseBean().writeLog(e);
}
bb.writeLog("FunctionManageCmd:remark89List:"+remark89List.size()+" atList:"+atList.size());
WfForceDrawBack wfdb = new WfForceDrawBack();
RequestForceDrawBack requestForceDrawBack = new RequestForceDrawBack();
RequestOperationResultBean resultBean = new RequestOperationResultBean();
if (wffmu.haveOtherOperationRight(requestid) && wfdb.isHavePurview(requestid, user.getUID(), logintype, -1, -1)) {
requestidlist.add("" + requestid);
// WfForceDrawBack.doForceDrawBack(requestidsArr, request,
// response, -1, -1);
// 使用新的收回方式
String sessionkey = workflowid + "_" + nodeid + "_" + user.getUID() + "_" + System.currentTimeMillis();
int result = requestForceDrawBack.foreceDrawBack(user, requestid, false, -1, -1);
if (!requestForceDrawBack.isAddInOperateSuccess()) {//强制收回附加操作执行失败,返回错误信息
String message = requestForceDrawBack.getMessage();
String messagecontent = requestForceDrawBack.getMessageContent();
if("".equals(message) || requestid <= 0) {
message = "1";
}
resultBean.setMessageInfo(SubmitErrorMsgBiz.getMsgInfo(request,user,message,messagecontent));
resultBean.setType(RequestExecuteType.FAILD);
Util_TableMap.setObjVal(Util.null2String(sessionkey), resultBean);
apidatas.put("success",false);
apidatas.put("msg",SystemEnv.getHtmlLabelNames("506175,83071",user.getLanguage()));
return apidatas;
}
if (result == RequestForceDrawBack.OLDDATA) {
wfdb.doForceDrawBack(requestidlist, request, response, -1, -1);
}
RequestOperateBiz.drawBackSpecialTreatment(formid, workflowid);
/*E9打印登录超时报错(QC:527424)*/
if(user == null) {
try {
response.sendRedirect(weaver.general.GCONST.getContextPath()+"/wui/index.html");
return null;
} catch (IOException e) {
e.printStackTrace();
}
}
//判断是否可以跳转到新的页面
boolean reqRoute = ServiceUtil.isReqRoute(String.valueOf(requestid),user);
apidatas.put("reqRoute", reqRoute);
apidatas.put("success",result == RequestForceDrawBack.SUCCESS);
if(result == RequestForceDrawBack.SUCCESS){
apidatas.put("msg",SystemEnv.getHtmlLabelName(83585,user.getLanguage()));
}else if(result == RequestForceDrawBack.FAIL){
apidatas.put("msg",SystemEnv.getHtmlLabelName(389102,user.getLanguage()));
}else if(result == RequestForceDrawBack.NORIGHT){
apidatas.put("msg",SystemEnv.getHtmlLabelName(18567,user.getLanguage()));
}
apidatas.put("sessionkey", sessionkey);
new BaseBean().writeLog("requestForceBack start");
try {
RequestForceBackUtil requestForceBackUtil = new RequestForceBackUtil();
requestForceBackUtil.sendTodoDataByForceBack(requestid+"");
requestForceBackUtil.completeReamrkAtByForceBack(remark89List,atList,forwardList);
}catch (Exception e){
e.printStackTrace();
new BaseBean().writeLog(e);
}
}else {
apidatas.put("success",false);
apidatas.put("msg",SystemEnv.getHtmlLabelName(18567,user.getLanguage()));
}
}
//自动取消 流程关注
new RequestAttentionBiz().cancelAttention(requestid,flag);
return apidatas;
}
@Override
public BizLogContext getLogContext() {
return null;
}
/**
*
* @param requestId
* @param user
* @param flag
*/
private boolean pushOperationMsg(int requestId,User user,String flag){
RequestOperationMsgManager romm = new RequestOperationMsgManager();
List<MsgEntity> requestMsgEntity = romm.getOperateMsgByReqId(String.valueOf(requestId),user,flag);
new MsgPushUtil().pushMsg(requestMsgEntity);
return true;
}
private void doArchiveRemind(int workflowid,int requestid){
String src = Util.null2String(request.getParameter("src"));
String remindTypes = Util.null2String(request.getParameter("remindTypes")); //表单上提醒方式
RequestRemindBiz requestRemindBiz = new RequestRemindBiz(user);
//默认提醒
WFManager wfManager = new WFManager();
try{
wfManager.setWfid(workflowid);
wfManager.getWfInfo();
}catch (Exception e){}
if("-1".equals(remindTypes)){ //老数据
int messageType = Util.getIntValue(Util.null2String(request.getParameter("messageType")),-1); // 老短信提醒
int mailMessageType = Util.getIntValue(Util.null2String(request.getParameter("chatsType")),-1); // 老邮件提醒
if(messageType >=1) requestRemindBiz.requestRemind(requestid,workflowid,src, RemindTypeEnum.SMS,messageType);
//历史数据可能只有短信提醒,但是其实也开启了邮件提醒
int _mailMessageType = Util.getIntValue(wfManager.getMailMessageType(),-1);
if(mailMessageType == 1 || _mailMessageType == 1) requestRemindBiz.requestRemind(requestid,workflowid,src,RemindTypeEnum.EMAIL,0);
Set<String> remindType = new HashSet<>();
if(messageType >=1) {
requestRemindBiz.requestRemind(requestid,workflowid,src,RemindTypeEnum.SMS,messageType);
}
if(mailMessageType == 1 || _mailMessageType == 1) {
requestRemindBiz.requestRemind(requestid,workflowid,src,RemindTypeEnum.EMAIL,0);
}
}else{
String isSmsRemind = remindTypes.indexOf(RemindTypeEnum.SMS.getCode()) > -1 ? "1" : "0";
String isEmailRemind = remindTypes.indexOf(RemindTypeEnum.EMAIL.getCode()) > -1 ? "1" : "0";
if("1".equals(isSmsRemind)) requestRemindBiz.requestRemind(requestid,workflowid,src,RemindTypeEnum.SMS,0);
if("1".equals(isEmailRemind)) requestRemindBiz.requestRemind(requestid,workflowid,src,RemindTypeEnum.EMAIL,0);
}
requestRemindBiz.requestEmailApproveRemind(String.valueOf(workflowid),String.valueOf(requestid),src);
}
public HttpServletRequest getRequest() {
return request;
}
}

@ -1,19 +1,33 @@
package com.engine.workflow.cmd.requestForm.communication;
import com.alibaba.fastjson.JSON;
import com.customization.qc2563600.CCOperatorUtil;
import com.customization.wfTodoCard.service.CheckSendCardService;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.workflow.biz.WorkflowCommunicationBiz;
import com.engine.workflow.entity.requestForm.communication.Content;
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.safety.Whitelist;
import org.jsoup.select.Elements;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.resource.ResourceComInfo;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.workflow.request.RequestSignRelevanceWithMe;
import java.lang.reflect.Method;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
import java.nio.charset.StandardCharsets;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@ -43,6 +57,7 @@ public class DoSaveContentCmd extends AbstractCommonCommand<Map<String, Object>>
int communicationId = Util.getIntValue(Util.null2String(params.get("communicationId")), 0);
int requestId = Util.getIntValue(Util.null2String(params.get("requestid")));
String requestName = "";
String nodeid = Util.null2String(params.get("nodeid"));
//没有传交流id,补偿一下
if (communicationId == 0) {
@ -56,11 +71,16 @@ public class DoSaveContentCmd extends AbstractCommonCommand<Map<String, Object>>
rs.next();
communicationId = WorkflowCommunicationBiz.getOrNewCommunicationId(refRequestId, Util.getIntValue(rs.getString("workflowid")));
requestId = refRequestId;
requestName = Util.null2String(rs.getString("REQUESTNAME"));
}else{
communicationId = WorkflowCommunicationBiz.getOrNewCommunicationId(requestId, workflowId);
}
}
String remark = Util.null2String(params.get("remark"));
new BaseBean().writeLog("DoSaveContentCmd-remark1:"+remark);
String quouteRemark = Util.null2String(params.get("quouteRemark"));
int quoteContentId = Util.getIntValue(Util.null2String(params.get("contentId")), -1);
String quoteType = Util.null2String(params.get("quote_type"));
@ -132,12 +152,117 @@ public class DoSaveContentCmd extends AbstractCommonCommand<Map<String, Object>>
WorkflowCommunicationBiz.resetNewCommunicationReadLog(communicationId, user, remark);
}
// 获取 at 的人员 id发送卡片
String isSelectValue = Util.null2String(params.get("isSelectValue"));
new BaseBean().writeLog("isSelectValue=======>" + isSelectValue);
if ("1".equals(isSelectValue) || "true".equals(isSelectValue)) {
// String newremark = Util.null2String(remark).replace("<p>", "").replace("</p>", "");
// String output = newremark.replaceAll("<a[^>]*>.*?</a>", "").replace("&nbsp;", " ");
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
Document doc = Jsoup.parse(remark);
List<String> result = new ArrayList<String>();
String title = "";
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);
}
}
// 选择所有的 <p> 标签
Elements pTags = doc.select("p");
Iterator<Element> pIt = pTags.iterator();
while(pIt.hasNext()) {
Element element = pIt.next();
title += element.text();
}
new BaseBean().writeLog("DoSaveContentCmd-title11:"+title);
try{
if(title.contains("&ntilde;")){
title = StringEscapeUtils.unescapeHtml4(title);
new BaseBean().writeLog("DoSaveContentCmd-title22:"+title);
}
if(title.contains("&ntilde;")){
title = title.replace("&ntilde;", "ñ");
new BaseBean().writeLog("DoSaveContentCmd-title33:"+title);
}
new BaseBean().writeLog("DoSaveContentCmd-title44:"+title);
}catch (Exception e){
new BaseBean().writeLog("e1:"+e);
}
if(result.size() > 0){
for(int i= 0;i<result.size();i++){
String receiverId = result.get(i);
bb.writeLog("sendRequestRemarkToCard-receiverId:"+receiverId);
if(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");
}
new BaseBean().writeLog("DoSaveContentCmd-lastname:"+lastname);
if(StringUtils.isNotBlank(lastname)){
title = title.replace(lastname,lastname+" ");
}
}
}
}
new BaseBean().writeLog("DoSaveContentCmd22--title:" + title);
// 选择所有的 <a> 标签
// Elements aTags = doc.select("a");
// for (int i = 0; i < aTags.size(); i++) {
// Element aTag = aTags.get(i);
// // 获取 atsome-name 属性值作为人名
// String name = aTag.attr("atsome-name");
// if (!name.isEmpty()) {
// // 创建文本节点
// TextNode textNode = new TextNode("@" + name, doc.baseUri());
// // 在 <a> 标签后面插入文本节点
// aTag.after(textNode);
// // 移除 <a> 标签
// aTag.remove();
// }
// }
// String html = doc.body().html();
// new BaseBean().writeLog("html=======>" + html);
RequestSignRelevanceWithMe reqsignwm = new RequestSignRelevanceWithMe();
List<String> atResourceids = reqsignwm.parseRemark(remark);
if (atResourceids.size() > 0){
new BaseBean().writeLog("html2====>"+ JSON.toJSONString(atResourceids));
for (String atResourceid : atResourceids) {
new CheckSendCardService().sendShareCard(""+user.getUID(), atResourceid, String.valueOf(requestId),requestName,title,"You have been tagged in a comment.");
}
}else{
new BaseBean().writeLog("atResourceids====> is empty <<< ");
}
}
//抄送(不需提交)给@的人员
new BaseBean().writeLog("qc2563600===>>开始执行抄送(不需提交)给@的人员,remark:" + remark);
CctoAtUser(nodeid,requestId,remark,user);
new BaseBean().writeLog("test222");
//发送给门户抄送不需提交,待阅
toMenhuDaiyue(requestId+"",nodeid,remark);
new BaseBean().writeLog("test3333");
apidatas.put("result", contentId != -1);
@ -151,7 +276,7 @@ public class DoSaveContentCmd extends AbstractCommonCommand<Map<String, Object>>
* @param remark
*/
private void CctoAtUser(String nodeid, int requestid, String remark,User user) {
new BaseBean().writeLog("CctoAtUser");
String pattern = "(?i)atsome=\\\"\\@[0-9]*";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(remark);
@ -169,6 +294,7 @@ public class DoSaveContentCmd extends AbstractCommonCommand<Map<String, Object>>
}
private void toMenhuDaiyue(String reqid,String nodeid,String remark){
new BaseBean().writeLog("toMenhuDaiyue");
List<Map<String, Object>> todolist = new ArrayList();
RecordSet rs = new RecordSet();
RecordSet rs1 = new RecordSet();
@ -220,6 +346,7 @@ public class DoSaveContentCmd extends AbstractCommonCommand<Map<String, Object>>
String passwd = PropBean.getUfPropValue("passwd");
String center = PropBean.getUfPropValue("center");
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
new BaseBean().writeLog("bpm_workflowurl22:"+bpm_workflowurl);
Class<?> clazz = Class.forName("com.customization.dito.sendtodo.SendPortalAtAddTodoCmd");
if(clazz.getMethod("sendTodoDataByNode",new Class[]{String.class,List.class,String.class,String.class,String.class,String.class,String.class,String.class,String.class}) != null) {

@ -1,16 +1,27 @@
package com.engine.workflow.cmd.requestForm.communication;
import com.customization.qc2563600.CCOperatorUtil;
import com.customization.wfTodoCard.service.CheckSendCardService;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.workflow.biz.WorkflowCommunicationBiz;
import com.engine.workflow.entity.requestForm.communication.Reply;
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.nodes.Node;
import org.jsoup.nodes.TextNode;
import org.jsoup.select.Elements;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.resource.ResourceComInfo;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.workflow.request.RequestSignRelevanceWithMe;
import java.lang.reflect.Method;
import java.text.DateFormat;
@ -120,6 +131,128 @@ public class DoSaveReply extends AbstractCommonCommand<Map<String, Object>> {
toMenhuDaiyue(communicationId,requestid,nodeid,remark);
}
// 获取 at 的人员 id发送卡片
String isSelectValue = Util.null2String(params.get("isSelectValue"));
new BaseBean().writeLog("isSelectValue=======>" + isSelectValue);
if ("1".equals(isSelectValue)) {
RecordSet rs = new RecordSet();
rs.executeQuery("select requestid from workflow_communicationbase where id = ?", communicationId);
rs.next();
String requestId = rs.getString("requestid");
new BaseBean().writeLog("requestId=======>" + requestId);
rs.executeQuery("select * from workflow_requestbase where requestid = ?",requestId);
rs.next();
String requestName = Util.null2String(rs.getString("REQUESTNAME"));
new BaseBean().writeLog("requestName=======>" + requestName);
// String newremark = Util.null2String(remark).replace("<p>", "").replace("</p>", "");
// String output = newremark.replaceAll("<a[^>]*>.*?</a>", "").replace("&nbsp;", " ");
BaseBean bb = new BaseBean();
Document doc = Jsoup.parse(remark);
List<String> result = new ArrayList<String>();
String title = "";
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);
}
}
// 选择所有的 <p> 标签
Elements pTags = doc.select("p");
// for (int i = 0; i < pTags.size(); i++) {
// Element pTag = pTags.get(i);
// // 获取 <p> 标签内的子节点列表
// List<Node> childNodes = pTag.clone().childNodes();
// // 按顺序将子节点插入到 <p> 标签的位置
// for (int j = childNodes.size() - 1; j >= 0; j--) {
// pTag.after(childNodes.get(j));
// }
// // 移除 <p> 标签
// pTag.remove();
// }
// // 选择所有的 <a> 标签
// Elements aTags = doc.select("a");
// for (int i = 0; i < aTags.size(); i++) {
// Element aTag = aTags.get(i);
// // 获取 atsome-name 属性值作为人名
// String name = aTag.attr("atsome-name");
// if (!name.isEmpty()) {
// // 创建文本节点
// TextNode textNode = new TextNode("@" + name, doc.baseUri());
// // 在 <a> 标签后面插入文本节点
// aTag.after(textNode);
// // 移除 <a> 标签
// aTag.remove();
// }
// }
Iterator<Element> pIt = pTags.iterator();
while(pIt.hasNext()) {
Element element = pIt.next();
title += element.text();
}
new BaseBean().writeLog("DoSaveReply-title11:"+title);
try{
if(title.contains("&ntilde;")){
title = StringEscapeUtils.unescapeHtml4(title);
new BaseBean().writeLog("DoSaveReply-title22:"+title);
}
if(title.contains("&ntilde;")){
title = title.replace("&ntilde;", "ñ");
new BaseBean().writeLog("DoSaveReply-title33:"+title);
}
new BaseBean().writeLog("DoSaveReply-title44:"+title);
}catch (Exception e){
new BaseBean().writeLog("e1:"+e);
}
if(result.size() > 0){
for(int i= 0;i<result.size();i++){
String receiverId = result.get(i);
bb.writeLog("DoSaveReply-receiverId:"+receiverId);
if(StringUtils.isNotBlank(receiverId)){
String lastname = "";
String sql = "select lastname,workcode,systemlanguage from hrmresource where id=?" ;
bb.writeLog("DoSaveReply-sql:"+sql);
rs.executeQuery(sql, new Object[] { receiverId });
if (rs.next()){
lastname = rs.getString("lastname");
}
new BaseBean().writeLog("DoSaveReply-lastname:"+lastname);
if(StringUtils.isNotBlank(lastname)){
title = title.replace(lastname,lastname+" ");
}
}
}
}
new BaseBean().writeLog("DoSaveReply22--title:" + title);
// String html = doc.body().html();
// new BaseBean().writeLog("html=======>" + html);
RequestSignRelevanceWithMe reqsignwm = new RequestSignRelevanceWithMe();
List<String> atResourceids = reqsignwm.parseRemark(remark);
for (String atResourceid : atResourceids) {
new CheckSendCardService().sendShareCard(""+user.getUID(), atResourceid, String.valueOf(requestId),requestName,title,"You have been tagged in a comment.");
}
}
apidatas.put("result", insertReplyId > 0);
return apidatas;

@ -14,6 +14,7 @@ import weaver.conn.RecordSet;
import weaver.cpt.util.CptWfUtil;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.dito.overtime.SendPortalOverTimeSubmitUtil;
import weaver.workflow.msg.MsgPushUtil;
import weaver.workflow.msg.entity.MsgEntity;
@ -88,33 +89,12 @@ public class DoHandle_CommonProcessCmd extends AbstractCommonCommand<Boolean> {
String userid = StringUtils.join(userlist, ",");
bb.writeLog("DoHandle_CommonProcessCmd-userid:"+userid);
String className = "weaver.interfaces.dito.overtime.SendPortalOverTimeSubmitUtil" ;
String methodName = "sendOverTimeSubmit" ;
Class<?> clazz = Class.forName(className);
bb.writeLog("DoHandle_CommonProcessCmd-requestid1:"+requestid);
Method method = clazz.getMethod(methodName,String.class,String.class);
bb.writeLog("DoHandle_CommonProcessCmd-requestid2:"+requestid);
Object newInstance = clazz.newInstance();
bb.writeLog("DoHandle_CommonProcessCmd-requestid3:"+requestid);
method.invoke(newInstance,requestid+"",userid);
bb.writeLog("DoHandle_CommonProcessCmd-result:");
SendPortalOverTimeSubmitUtil sendPortalOverTimeSubmitUtil = new SendPortalOverTimeSubmitUtil();
sendPortalOverTimeSubmitUtil.sendOverTimeSubmit(requestid+"",userid);
}
}catch (ClassNotFoundException | NoSuchMethodException e){
}catch (Exception e){
e.printStackTrace();
bb.writeLog("DoHandle_CommonProcessCmd-ClassNotFoundException:"+e);
} catch (IllegalAccessException e) {
e.printStackTrace();
bb.writeLog("DoHandle_CommonProcessCmd-IllegalAccessException:"+e);
} catch (InstantiationException e) {
e.printStackTrace();
bb.writeLog("DoHandle_CommonProcessCmd-InstantiationException:"+e);
} catch (InvocationTargetException e) {
e.printStackTrace();
bb.writeLog("DoHandle_CommonProcessCmd-InvocationTargetException:"+e);
}
}
}

@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.api.browser.bean.SearchConditionOption;
import com.customization.dito.sendtodo.SendPortalTodoDeleteUtil;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.workflow.biz.freeNode.FreeNodeAsyncSubmitBiz;
@ -30,6 +29,7 @@ import weaver.general.Util;
import weaver.general.WorkFlowTransMethod;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import weaver.interfaces.dito.form.SendPortalFormLoadUtil;
import weaver.workflow.request.WFAutoApproveThreadPoolUtil;
import weaver.workflow.workflow.WorkflowConfigComInfo;
@ -107,14 +107,24 @@ public class RequestFormAction {
response.setCharacterEncoding("utf-8");
BaseBean bb = new BaseBean();
List<Map<String, String>> remark8List = new ArrayList<Map<String, String>>();
List<Map<String, String>> atList = new ArrayList<Map<String, String>>();
User user = HrmUserVarify.getUser(request, response);
// List<Map<String, String>> remark8List = new ArrayList<Map<String, String>>();
// List<Map<String, String>> remark9List = new ArrayList<Map<String, String>>();
// List<Map<String, String>> atList = new ArrayList<Map<String, String>>();
Map<String, Integer> remark9Map = new HashMap<String, Integer>();
List<Map<String,String>> atList = new ArrayList<Map<String,String>>();
String requestids = request.getParameter("requestid");
try{
String requestid = request.getParameter("requestid");
int userid = user.getUID();
SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
sendPortalTodoDeleteUtil.queryWorkflowRemark8AtByLoadForm(requestid,userid+"",remark8List,atList);
bb.writeLog("loadForm-requestids"+requestids);
if(StringUtils.isNotEmpty(requestids) && !"null".equals(requestids) && requestids !=null){
User user = HrmUserVarify.getUser(request, response);
int userid = user.getUID();
SendPortalFormLoadUtil sendPortalFormLoadUtil = new SendPortalFormLoadUtil();
remark9Map = sendPortalFormLoadUtil.queryWorkflowRemark9ByLoadForm(requestids,userid+"");
atList = sendPortalFormLoadUtil.queryWorkflowRemarkAtByLoadForm(requestids,userid+"");
}
bb.writeLog("loadForm-remark9Map"+remark9Map.size());
}catch (Exception e){
e.printStackTrace();
bb.writeLog("loadForm-e:"+e);
@ -127,9 +137,15 @@ public class RequestFormAction {
result = result.substring(0, result.length() - 1) + ",\"durationTime\":" + duration + "}";
try{
String loginid = user.getLoginid();
SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
sendPortalTodoDeleteUtil.completeReamrk8AtByLoadForm(loginid,remark8List,atList);
bb.writeLog("loadForm-requestids2"+requestids);
if(StringUtils.isNotEmpty(requestids) && !"null".equals(requestids) && requestids !=null){
SendPortalFormLoadUtil sendPortalFormLoadUtil = new SendPortalFormLoadUtil();
User user = HrmUserVarify.getUser(request, response);
int userid = user.getUID();
String logind = user.getLoginid();
bb.writeLog("loadForm-logind"+logind);
sendPortalFormLoadUtil.completeRequestByLoadForm(requestids,userid+"",remark9Map,logind,atList);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("loadForm2-e:"+e);
@ -174,18 +190,17 @@ public class RequestFormAction {
@Produces(MediaType.TEXT_PLAIN)
public String updateReqInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try{
BaseBean bb = new BaseBean();
User user = HrmUserVarify.getUser(request, response);
String requestid = request.getParameter("requestid");
int userid = user.getUID();
SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
List<Map<String,String>> list = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,userid+"");
bb.writeLog("updateReqInfo--list2:"+list.size());
}catch (Exception e){
}
// try{
// BaseBean bb = new BaseBean();
// User user = HrmUserVarify.getUser(request, response);
// String requestid = request.getParameter("requestid");
// int userid = user.getUID();
// SendPortalTodoDeleteUtil sendPortalTodoDeleteUtil = new SendPortalTodoDeleteUtil();
// List<Map<String,String>> list = sendPortalTodoDeleteUtil.queryWorkflowCopyToByRequestid(requestid,userid+"");
// bb.writeLog("updateReqInfo--list2:"+list.size());
// }catch (Exception e){
//
// }
RequestFormServiceImpl formService = getFormService(request, response);
Map<String, Object> apidatas = formService.updateReqInfo(request);

@ -1,7 +1,5 @@
package com.engine.workflow.web;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -27,6 +25,14 @@ import weaver.hrm.User;
import com.alibaba.fastjson.JSONObject;
import com.engine.workflow.service.RequestMonitorListService;
import com.engine.common.util.ServiceUtil;
import weaver.interfaces.dito.archiving.RequestArchingCompleteForwardUtil;
import weaver.interfaces.dito.archiving.RequestArchingCompleteRemark89Util;
import weaver.interfaces.dito.archiving.RequestArchingSendPortalUtil;
import weaver.interfaces.dito.archiving.RequestArchvingQueryUtil;
import weaver.interfaces.dito.delete.RequestDeleteQueryPortalUtil;
import weaver.interfaces.dito.delete.RequestDeleteSendPortalUtil;
import weaver.interfaces.dito.monitor.SendPortalMonitorRepossessedUtil;
import weaver.interfaces.dito.monitor.SendPortalMonitorUtil;
/**
* (action)
@ -176,137 +182,42 @@ public class RequestMonitorListAction {
BaseBean bb = new BaseBean();
List<Map<String,String>> copyList = new ArrayList<Map<String,String>>();
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
bb.writeLog("deleteRequestById-requestid"+requestid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "queryWorkflowCopyToByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, String.class);
Object newInstance = clazz.newInstance();
copyList = (List<Map<String,String>>) method.invoke(newInstance,requestid);
}
}catch (ClassNotFoundException | NoSuchMethodException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
List<Map<String,String>> forwardList = new ArrayList<Map<String,String>>();
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
bb.writeLog("deleteRequestById-requestid"+requestid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "queryWorkflowForwardByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, String.class);
Object newInstance = clazz.newInstance();
forwardList = (List<Map<String,String>>) method.invoke(newInstance,requestid);
}
}catch (ClassNotFoundException | NoSuchMethodException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
List<Map<String,String>> atList = new ArrayList<Map<String,String>>();
List<Map<String,String>> baseList = new ArrayList<Map<String,String>>();
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
bb.writeLog("deleteRequestById-requestid"+requestid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "queryWorkflowAtByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, String.class);
Object newInstance = clazz.newInstance();
atList = (List<Map<String,String>>) method.invoke(newInstance,requestid);
RequestDeleteQueryPortalUtil requestDeleteQueryPortalUtil = new RequestDeleteQueryPortalUtil();
copyList = requestDeleteQueryPortalUtil.queryRequestReamrk89ByDelete(requestid);
forwardList = requestDeleteQueryPortalUtil.queryRequestForwardByDelete(requestid);
atList = requestDeleteQueryPortalUtil.queryRequestAtByDelete(requestid);
baseList = requestDeleteQueryPortalUtil.queryRequestDataByDelete(requestid);
}
}catch (ClassNotFoundException | NoSuchMethodException e){
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
bb.writeLog("deleteRequestById-1:"+e);
}
apidatas = monitorService.deleteRequestById(request, user);
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
RequestDeleteSendPortalUtil requestDeleteSendPortalUtil = new RequestDeleteSendPortalUtil();
String userid = user.getUID()+"" ;
bb.writeLog("deleteRequestById-requestid"+requestid);
bb.writeLog("deleteRequestById-userid"+userid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ;
String methodName = "monitorDelete" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,requestid,userid);
}
}catch (ClassNotFoundException | NoSuchMethodException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
String notes = "";
try{
String loginid = user.getLoginid()+"" ;
bb.writeLog("copyList:"+copyList.size());
if(copyList.size() >0){
notes = "流程监控删除,删除流程所有未读的抄送数据";
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "monitorFinishedWorkflowCopyToByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,List.class,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,copyList,loginid,notes);
}
}catch (ClassNotFoundException | NoSuchMethodException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
String loginid = user.getLoginid()+"" ;
bb.writeLog("forwardList:"+forwardList.size());
if(forwardList.size() >0){
notes = "流程监控删除,删除流程所有未读的转发数据";
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "monitorFinishedWorkflowForwardByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,List.class,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,forwardList,loginid,notes);
if(baseList.size()>0){
requestDeleteSendPortalUtil.monitorDelete(userid,baseList);
}
}catch (ClassNotFoundException | NoSuchMethodException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
String loginid = user.getLoginid()+"" ;
bb.writeLog("atList:"+atList.size());
if(atList.size() >0){
notes = "流程监控删除,删除流程所有未读@的数据";
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "monitorFinishedWorkflowAtByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,List.class,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,atList,loginid,notes);
}
}catch (ClassNotFoundException | NoSuchMethodException e){
String notes = "流程监控页面,";
requestDeleteSendPortalUtil.completeRemark89ForwardAtByDelete(user,copyList,forwardList,atList,notes);
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
bb.writeLog("deleteRequestById-4:"+e);
}
}catch(Exception e){
e.printStackTrace();
apidatas.put("api_status", false);
@ -331,97 +242,68 @@ public class RequestMonitorListAction {
BaseBean bb = new BaseBean();
List<Map<String,String>> userList = new ArrayList<Map<String,String>>();
try{
bb.writeLog("deleteRequestById-requestid"+requestids);
if(StringUtils.isNotEmpty(requestids)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorArchvingUtil" ;
String methodName = "queryRequestUserDataByArchving" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, String.class);
Object newInstance = clazz.newInstance();
userList = (List<Map<String,String>>) method.invoke(newInstance,requestids);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
e.printStackTrace();
bb.writeLog("archivingRequestById-ClassNotFoundException"+e);
}
// 流程的待办的处理人
// List<Map<String,String>> userList = new ArrayList<Map<String,String>>();
// try{
// bb.writeLog("deleteRequestById-requestid"+requestids);
//
// if(StringUtils.isNotEmpty(requestids)){
// SendPortalMonitorArchvingUtil sendPortalMonitorArchvingUtil = new SendPortalMonitorArchvingUtil();
// userList = sendPortalMonitorArchvingUtil.queryRequestUserDataByArchving(requestids);
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("archivingRequestById-1:"+e);
// }
List<Map<String,String>> copyList = new ArrayList<Map<String,String>>();
List<Map<String,String>> remarkList = new ArrayList<Map<String,String>>();
List<Map<String,String>> forwardList = new ArrayList<Map<String,String>>();
List<Map<String,String>> atList = new ArrayList<Map<String,String>>();
// List<Map<String,String>> atList = new ArrayList<Map<String,String>>();
if(!userList.isEmpty() && userList.size() > 0){
// 获取 抄送、转发、@ 的数据
// if(!userList.isEmpty() && userList.size() > 0){
// // 获取 抄送、转发、@ 的数据
try{
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorArchvingUtil" ;
String methodName = "queryWorkflowRemarkByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, List.class);
Object newInstance = clazz.newInstance();
copyList = (List<Map<String,String>>) method.invoke(newInstance,userList);
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
RequestArchvingQueryUtil requestArchvingQueryUtil = new RequestArchvingQueryUtil();
Map<String,String> nodeMap = requestArchvingQueryUtil.queryRequestNodeIdByArchving(requestids);
remarkList = requestArchvingQueryUtil.queryWorkflowRemarkByRequestid(requestids,nodeMap);
forwardList = requestArchvingQueryUtil.queryWorkflowForwardByRequestid(requestids,nodeMap);
}catch (Exception e){
e.printStackTrace();
bb.writeLog("archivingRequestById-ClassNotFoundException"+e);
bb.writeLog("archivingRequestById-2:"+e);
}
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
bb.writeLog("deleteRequestById-requestid"+requestid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorArchvingUtil" ;
String methodName = "queryWorkflowForwardByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, List.class);
Object newInstance = clazz.newInstance();
forwardList = (List<Map<String,String>>) method.invoke(newInstance,userList);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
e.printStackTrace();
bb.writeLog("archivingRequestById-ClassNotFoundException"+e);
}
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
bb.writeLog("deleteRequestById-requestid"+requestid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorArchvingUtil" ;
String methodName = "queryWorkflowAtByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, List.class);
Object newInstance = clazz.newInstance();
atList = (List<Map<String,String>>) method.invoke(newInstance,userList);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
e.printStackTrace();
bb.writeLog("archivingRequestById-ClassNotFoundException"+e);
}
}
//
// try{
// SendPortalMonitorArchvingUtil sendPortalMonitorArchvingUtil = new SendPortalMonitorArchvingUtil();
// forwardList = sendPortalMonitorArchvingUtil.queryWorkflowForwardByRequestid(userList);
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("archivingRequestById-3:"+e);
// }
//
// try{
// SendPortalMonitorArchvingUtil sendPortalMonitorArchvingUtil = new SendPortalMonitorArchvingUtil();
// atList = sendPortalMonitorArchvingUtil.queryWorkflowAtByRequestid(userList);
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("archivingRequestById-4:"+e);
// }
// }
// 执行智能预测接口
User user = HrmUserVarify.getUser(request, response);
try{
String f_weaver_belongto_userid=request.getParameter("f_weaver_belongto_userid");//需要增加的代码
String f_weaver_belongto_usertype=request.getParameter("f_weaver_belongto_usertype");//需要增加的代码
user = HrmUserVarify.getUser(request, response, f_weaver_belongto_userid, f_weaver_belongto_usertype) ;//需要增加的代码
bb.writeLog("智能预测:"+requestids);
if(StringUtils.isNotEmpty(requestids)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ;
String methodName = "doSimpleModeDataByMonitor" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, String.class,User.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,requestids,user);
RequestArchingSendPortalUtil requestArchingSendPortalUtil = new RequestArchingSendPortalUtil();
requestArchingSendPortalUtil.doSimpleModeDataByMonitor(requestids,user);
}
}catch (Exception e){
bb.writeLog("archivingRequestById-5:"+e);
}
//强制归档接口
@ -437,74 +319,58 @@ public class RequestMonitorListAction {
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
}
// 完成转发、抄送、@的数据
// 流程强制归档,调用门户接口生产归档节点的数据
try{
String userid = user.getUID()+"" ;
// addClassInterface2Monitor(requestids,userid);
if(StringUtils.isNotEmpty(requestids)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ;
String methodName = "monitorArchived" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,requestids,userid);
RequestArchingSendPortalUtil requestArchingSendPortalUtil = new RequestArchingSendPortalUtil();
requestArchingSendPortalUtil.monitorArchived(requestids,userid);
}
}catch (Exception e){
bb.writeLog("archivingRequestById-ClassNotFoundException"+e);
}
// 完成转发、抄送、@的数据
String notes = "";
try{
String loginid = user.getLoginid()+"" ;
bb.writeLog("copyList:"+copyList.size());
if(copyList.size() >0){
notes = "流程监控删除,删除流程所有未读的抄送数据";
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "monitorFinishedWorkflowCopyToByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,List.class,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,copyList,loginid,notes);
bb.writeLog("remarkList:"+remarkList.size());
if(remarkList.size() >0){
notes = "流程监控强制归档,完成流程所有未读的抄送数据";
RequestArchingCompleteRemark89Util requestArchingCompleteRemark89Util = new RequestArchingCompleteRemark89Util();
requestArchingCompleteRemark89Util.monitorCompleteRequestRemark89(remarkList,notes,user);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
String loginid = user.getLoginid()+"" ;
bb.writeLog("forwardList:"+forwardList.size());
if(forwardList.size() >0){
notes = "流程监控删除,删除流程所有未读的转发数据";
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "monitorFinishedWorkflowForwardByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,List.class,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,forwardList,loginid,notes);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
String loginid = user.getLoginid()+"" ;
bb.writeLog("atList:"+atList.size());
if(atList.size() >0){
notes = "流程监控删除,删除流程所有未读@的数据";
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "monitorFinishedWorkflowAtByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,List.class,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,atList,loginid,notes);
notes = "流程监控强制归档,完成流程所有未读的转发数据";
RequestArchingCompleteForwardUtil requestArchingCompleteForwardUtil = new RequestArchingCompleteForwardUtil();
requestArchingCompleteForwardUtil.monitorCompleteRequestForward(forwardList,notes,user);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
//
// try{
// String loginid = user.getLoginid()+"" ;
// bb.writeLog("atList:"+atList.size());
// if(atList.size() >0){
// notes = "流程监控强制归档,完成流程所有未读@的数据";
//
// SendPortalMonitorDeleteUtil sendPortalMonitorDeleteUtil = new SendPortalMonitorDeleteUtil();
// sendPortalMonitorDeleteUtil.monitorFinishedWorkflowAtByRequestid(atList,loginid,notes);
//
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
// }
return JSONObject.toJSONString(apidatas);
}
@ -660,73 +526,34 @@ public class RequestMonitorListAction {
BaseBean bb = new BaseBean();
String requestids = Util.null2String(request.getParameter("multiRequestIds"));
List<Map<String,String>> userList = new ArrayList<Map<String,String>>();
try{
bb.writeLog("deleteRequestById-requestid"+requestids);
if(StringUtils.isNotEmpty(requestids)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorArchvingUtil" ;
String methodName = "queryRequestUserDataByArchving" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, String.class);
Object newInstance = clazz.newInstance();
userList = (List<Map<String,String>>) method.invoke(newInstance,requestids);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
e.printStackTrace();
bb.writeLog("archivingRequestById-ClassNotFoundException"+e);
}
List<Map<String,String>> copyList = new ArrayList<Map<String,String>>();
List<Map<String,String>> forwardList = new ArrayList<Map<String,String>>();
List<Map<String,String>> atList = new ArrayList<Map<String,String>>();
if(!userList.isEmpty() && userList.size() > 0){
if(StringUtils.isNotBlank(requestids)){
// 获取 抄送、转发、@ 的数据
try{
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorArchvingUtil" ;
String methodName = "queryWorkflowRemarkByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, List.class);
Object newInstance = clazz.newInstance();
copyList = (List<Map<String,String>>) method.invoke(newInstance,userList);
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
e.printStackTrace();
bb.writeLog("archivingRequestById-ClassNotFoundException"+e);
}
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
bb.writeLog("deleteRequestById-requestid"+requestid);
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorArchvingUtil" ;
String methodName = "queryWorkflowForwardByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, List.class);
Object newInstance = clazz.newInstance();
forwardList = (List<Map<String,String>>) method.invoke(newInstance,userList);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
SendPortalMonitorRepossessedUtil sendPortalMonitorRepossessedUtil = new SendPortalMonitorRepossessedUtil();
copyList = sendPortalMonitorRepossessedUtil.queryWorkflowRemark89ByArchving(requestids);
}catch (Exception e){
e.printStackTrace();
bb.writeLog("archivingRequestById-ClassNotFoundException"+e);
bb.writeLog("repossessedRequestById-1:"+e);
}
try{
String requestid = Util.null2String(request.getParameter("multiRequestIds"));
bb.writeLog("deleteRequestById-requestid"+requestid);
// try{
// SendPortalMonitorRepossessedUtil sendPortalMonitorRepossessedUtil = new SendPortalMonitorRepossessedUtil();
// forwardList = sendPortalMonitorRepossessedUtil.queryWorkflowForwardByRequestid(userList);
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("repossessedRequestById-2:"+e);
// }
if(StringUtils.isNotEmpty(requestid)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorArchvingUtil" ;
String methodName = "queryWorkflowAtByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName, List.class);
Object newInstance = clazz.newInstance();
atList = (List<Map<String,String>>) method.invoke(newInstance,userList);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
e.printStackTrace();
bb.writeLog("archivingRequestById-ClassNotFoundException"+e);
}
// try{
// SendPortalMonitorArchvingUtil sendPortalMonitorArchvingUtil = new SendPortalMonitorArchvingUtil();
// atList = sendPortalMonitorArchvingUtil.queryWorkflowAtByRequestid(userList);
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("repossessedRequestById-3:"+e);
// }
}
User user = HrmUserVarify.getUser(request, response);
@ -749,14 +576,11 @@ public class RequestMonitorListAction {
bb.writeLog("repossessedRequestById-userid"+userid);
if(StringUtils.isNotEmpty(requestids)){
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil" ;
String methodName = "monitorPossessed" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,requestids,userid);
SendPortalMonitorUtil sendPortalMonitorUtil = new SendPortalMonitorUtil();
sendPortalMonitorUtil.monitorPossessed(requestids,userid);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
}catch (Exception e){
e.printStackTrace();
bb.writeLog("repossessedRequestById-ClassNotFoundException"+e);
}
@ -766,55 +590,41 @@ public class RequestMonitorListAction {
String loginid = user.getLoginid()+"" ;
bb.writeLog("copyList:"+copyList.size());
if(copyList.size() >0){
notes = "流程监控删除,删除流程所有未读的抄送数据";
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "monitorFinishedWorkflowCopyToByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,List.class,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,copyList,loginid,notes);
notes = "流程监控强制收回,完成流程所有未读的抄送数据";
SendPortalMonitorRepossessedUtil sendPortalMonitorRepossessedUtil = new SendPortalMonitorRepossessedUtil();
sendPortalMonitorRepossessedUtil.monitorRequestRemark89ByArchving(copyList,loginid,notes);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
String loginid = user.getLoginid()+"" ;
bb.writeLog("forwardList:"+forwardList.size());
if(forwardList.size() >0){
notes = "流程监控删除,删除流程所有未读的转发数据";
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "monitorFinishedWorkflowForwardByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,List.class,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,forwardList,loginid,notes);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
}catch (Exception e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
}
try{
String loginid = user.getLoginid()+"" ;
bb.writeLog("atList:"+atList.size());
if(atList.size() >0){
notes = "流程监控删除,删除流程所有未读@的数据";
String className = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil" ;
String methodName = "monitorFinishedWorkflowAtByRequestid" ;
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,List.class,String.class,String.class);
Object newInstance = clazz.newInstance();
method.invoke(newInstance,atList,loginid,notes);
}
}catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e){
e.printStackTrace();
bb.writeLog("deleteRequestById-ClassNotFoundException"+e);
bb.writeLog("repossessedRequestById-5:"+e);
}
// try{
// String loginid = user.getLoginid()+"" ;
// bb.writeLog("forwardList:"+forwardList.size());
// if(forwardList.size() >0){
// notes = "流程监控强制收回,完成流程所有未读的转发数据";
// SendPortalMonitorDeleteUtil sendPortalMonitorDeleteUtil = new SendPortalMonitorDeleteUtil();
// sendPortalMonitorDeleteUtil.monitorFinishedWorkflowForwardByRequestid(forwardList,loginid,notes);
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("repossessedRequestById-6:"+e);
// }
// try{
// String loginid = user.getLoginid()+"" ;
// bb.writeLog("atList:"+atList.size());
// if(atList.size() >0){
// notes = "流程监控强制收回,完成流程所有未读@的数据";
// SendPortalMonitorDeleteUtil sendPortalMonitorDeleteUtil = new SendPortalMonitorDeleteUtil();
// sendPortalMonitorDeleteUtil.monitorFinishedWorkflowAtByRequestid(atList,loginid,notes);
//
// }
// }catch (Exception e){
// e.printStackTrace();
// bb.writeLog("repossessedRequestById-7:"+e);
// }
return JSONObject.toJSONString(apidatas);
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,253 @@
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.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 weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
import java.net.URLEncoder;
/**
* @author
* @date 2024/10/28
*
*/
public class RequestForceRecycle2PortalAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
BaseBean bb = new BaseBean();
bb.writeLog("----RequestForceRecycle2PortalAction------");
String requestid = requestInfo.getRequestid();
try{
String resultCode = sendTodoDataByForceRecycle(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 sendTodoDataByForceRecycle(String 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.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 cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String terminal = "1" ;
String taskType = "0";
try {
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
String currentNodeId = "" ;
String currentNodeName = "" ;
String requestname = "" ;
String workflowname = "" ;
String currentnodeid = "" ;
String currentnodetype = "" ;
String createrLoginId = "";
String createrLastName = "";
String basesql =" 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("sendTodoDataByForceRecycle:sql:"+basesql);
rs.executeQuery(basesql);
if(rs.next()){
currentnodeid = Util.null2String(rs.getString("currentnodeid"));
currentnodetype = Util.null2String(rs.getString("currentnodetype"));
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
createrLoginId = Util.null2String(rs.getString("loginid")) ;
createrLastName = Util.null2String(rs.getString("lastname")) ;
}
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("sendTodoDataByForceRecycle-currentnodeid:"+currentnodeid);
bb.writeLog("sendTodoDataByForceRecycle-currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
message += ",流程状态为归档";
String actionType = "3" ;
try {
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
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",currentNodeName);
requestObject.put("ticketType",workflowname);
String auth = username + ":" + passwd;
bb.writeLog("sendTodoDataByForceRecycle-3-requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("sendTodoDataByForceRecycle-3-msgdata:"+msgdata);
if(StringUtils.isNotBlank(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,"",message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message);
}
}
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog("sendTodoDataByForceRecycle:"+e);
}
}else{
String actionType = "2";
String objectAction = "0" ;
String objectType = "0";
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("center",center);
requestObject.put("title",requestname);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("nodeId",currentNodeId);
requestObject.put("taskType",taskType);
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",currentNodeName);
requestObject.put("ticketType",workflowname);
JSONArray taskObjectList = new JSONArray();
String 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.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid;
bb.writeLog("sendTodoDataByForceRecycle--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);
}
requestObject.put("actionType",actionType);
requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("sendTodoDataByForceRecycle--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,"",message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",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,802 @@
package weaver.interfaces.dito.forceback;
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.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 RequestForceBackUtil {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
/***
*
* @param requestid
*/
public String sendTodoDataByForceBack(String 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.forceback.RequestForceBackUtil.sendTodoDataByForceBack" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
RecordSet rs = new RecordSet();
String message = "流程页面强制收回操作";
BaseBean bb = new BaseBean();
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
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");
}
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("sendTodoDataByForceBack-currentNodeId:"+currentNodeId);
bb.writeLog("sendTodoDataByForceBack-currentnodetype:"+currentnodetype);
if("3".equals(currentnodetype)){
message += ",流程状态为归档";
String actionType = "3" ;
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("sendTodoDataByForceBack-3-requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("sendTodoDataByForceBack-3-msgdata:"+msgdata);
if(StringUtils.isNotBlank(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,"",message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message);
}
}
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog("sendTodoDataByForceBack:"+e);
}
}else{
String actionType = "2";
String objectAction = "0" ;
String objectType = "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("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 =" 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.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid;
bb.writeLog("sendTodoDataByForceBack--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);
}
requestObject.put("actionType",actionType);
requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("sendTodoDataByForceBack--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,"",message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return resultCode;
}
private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
public List<Map<String, String>> queryRequestRemark89ByForceBack(String requestid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestRemark89ByForceBack-requestid:"+requestid);
List<Map<String, String>> remark89List = new ArrayList<Map<String, String>>();
try{
Map<String,String> map = null ;
if(StringUtils.isNotBlank(requestid)){
String currentnodeid = "";
String sql = " select currentnodeid from workflow_requestbase where requestid = "+requestid;
rs.executeQuery(sql);
if(rs.next()){
currentnodeid = Util.null2String(rs.getString("currentnodeid"));
}
if(StringUtils.isNotBlank(currentnodeid)){
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.preisremark in (8,9)\n" +
" and t.requestid in("+requestid +") and t.nodeid = "+currentnodeid ;
rs.executeQuery(sql);
bb.writeLog("queryRequestRemarkAtByForceBack-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 = 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);
remark89List.add(map);
}
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("queryRequestRemarkAtByForceBack-e:"+e);
}
return remark89List;
}
public List<Map<String, String>> queryRequestAtByForceBack(String requestid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
List<Map<String, String>> atList = new ArrayList<Map<String, String>>();
bb.writeLog("queryRequestRemarkAtByForceBack-requestid:"+requestid);
try{
Map<String,String> map = null ;
if(StringUtils.isNotBlank(requestid)){
String currentnodeid = "";
String sql = " select currentnodeid from workflow_requestbase where requestid = "+requestid;
rs.executeQuery(sql);
if(rs.next()){
currentnodeid = Util.null2String(rs.getString("currentnodeid"));
}
if(StringUtils.isNotBlank(currentnodeid)){
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.preisremark in (18)\n" +
" and t.requestid in("+requestid +") and t.nodeid = "+currentnodeid ;
rs.executeQuery(sql);
bb.writeLog("queryRequestRemarkAtByForceBack-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);
atList.add(map);
}
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("queryRequestRemarkAtByForceBack-e:"+e);
}
return atList;
}
public List<Map<String, String>> queryRequestForwardByForceBack(String requestid){
List<Map<String, String>> forwardList = new ArrayList<Map<String, String>>();
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("queryRequestRemarkAtByForceBack-requestid:"+requestid);
try{
Map<String,String> map = null ;
if(StringUtils.isNotBlank(requestid)){
String currentnodeid = "";
String sql = " select currentnodeid from workflow_requestbase where requestid = "+requestid;
rs.executeQuery(sql);
if(rs.next()){
currentnodeid = Util.null2String(rs.getString("currentnodeid"));
}
if(StringUtils.isNotBlank(currentnodeid)){
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.preisremark = 1 \n" +
" and t.requestid in("+requestid +") and t.nodeid = "+currentnodeid ;
rs.executeQuery(sql);
bb.writeLog("queryRequestRemarkAtByForceBack-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 = 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);
forwardList.add(map);
}
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("queryRequestRemarkAtByForceBack-e:"+e);
}
return forwardList;
}
/***
*
* @param remarkList
* @param atList
*/
public void completeReamrkAtByForceBack(List<Map<String,String>> remarkList, List<Map<String,String>> atList,List<Map<String,String>> forwardList){
BaseBean bb = new BaseBean();
try{
bb.writeLog("completeReamrkAtByForceBack--remark8List999:"+remarkList.size());
if(remarkList.size() >0){
String notes = "流程页面强制收回,完成抄送(需提交、不需提交)的数据";
finishedReuqestRemarkByForceBack(remarkList,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("completeReamrkAtByForceBack-e:"+e);
}
try{
bb.writeLog("completeReamrkAtByForceBack--atList999:"+atList.size());
if(atList.size() >0){
String notes = "流程页面强制收回,完成@的数据";
finishedWorkflowAtByForceBack(atList,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("completeReamrkAtByForceBack-e:"+e);
}
try{
bb.writeLog("completeReamrkAtByForceBack--forwardList000:"+forwardList.size());
if(forwardList.size() >0){
String notes = "流程页面强制收回,完成转发数据";
finishedWorkflowForwardByForceBack(forwardList,notes);
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("completeReamrkAtByForceBack-e:"+e);
}
}
public void finishedReuqestRemarkByForceBack(List<Map<String,String>> list,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"));
bb.writeLog("finishedReuqestCopyToByForceBack-userid:"+userid);
bb.writeLog("finishedReuqestCopyToByForceBack-nodeid:"+nodeid);
bb.writeLog("finishedReuqestCopyToByForceBack-requestid:"+requestid);
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
finishedRquestRemarkByRequest(requestid,userid,nodeid,workflowname,requestname,nodename,notes);
}
}
}
private void finishedRquestRemarkByRequest(String requestid,String userid,String nodeid,String workflowname,String requestname,String nodename,String notes){
BaseBean bb = new BaseBean();
bb.writeLog("finishedRquestRemarkByRequest-requestid:"+requestid);
String zhjkbs = "weaver.interfaces.dito.forceback.RequestForceBackUtil.finishedRquestRemarkByRequest" ;
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");
}
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 ;
rs.executeQuery(basesql);
if(rs.next()){
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
bb.writeLog("finishedRquestRemarkByRequest:createrLoginId:"+createrLoginId);
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("finishedRquestRemarkByRequest-requestObject:"+requestObject.toJSONString());
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("finishedRquestRemarkByRequest-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();
}
}
public void finishedWorkflowAtByForceBack(List<Map<String,String>> list,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"));
bb.writeLog("finishedWorkflowAtByForceBack-userid:"+userid);
bb.writeLog("finishedWorkflowAtByForceBack-nodeid:"+nodeid);
bb.writeLog("finishedWorkflowAtByForceBack-requestid:"+requestid);
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
finishedRequestAtByRequest(requestid,userid,nodeid,workflowname,requestname,nodename,notes);
}
}
}
/***
* @
* @param requestid
* @param userid
* @param nodeid
* @param workflowname
* @param requestname
* @param nodename
*/
private void finishedRequestAtByRequest(String requestid,String userid,String nodeid,String workflowname,String requestname,String nodename,String notes){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
bb.writeLog("finishedRequestAtByRequest-requestid:"+requestid);
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.forceback.RequestForceBackUtil.finishedRequestAtByRequest" ;
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");
}
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 ;
rs.executeQuery(basesql);
if(rs.next()){
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
bb.writeLog("finishedRequestAtByRequest-createrLoginId:"+createrLoginId);
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("finishedRequestAtByRequest--requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
bb.writeLog("finishedRequestAtByRequest-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();
}
}
/**
*
* @param list
* @param notes
*/
public void finishedWorkflowForwardByForceBack(List<Map<String,String>> list,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"));
bb.writeLog("finishedWorkflowForwardByForceBack-userid:"+userid);
bb.writeLog("finishedWorkflowForwardByForceBack-nodeid:"+nodeid);
bb.writeLog("finishedWorkflowForwardByForceBack-requestid:"+requestid);
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
finishedRequestForwardByRequest(requestid,userid,nodeid,workflowname,requestname,nodename,notes);
}
}
}
/***
* @
* @param requestid
* @param userid
* @param nodeid
* @param workflowname
* @param requestname
* @param nodename
*/
private void finishedRequestForwardByRequest(String requestid,String userid,String nodeid,String workflowname,String requestname,String nodename,String notes){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
bb.writeLog("finishedWorkflowForwardByForceBack-requestid:"+requestid);
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.forceback.RequestForceBackUtil.finishedRequestForwardByRequest" ;
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");
}
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 ;
rs.executeQuery(basesql);
if(rs.next()){
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
bb.writeLog("finishedWorkflowForwardByForceBack-createrLoginId:"+createrLoginId);
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+"_zf_"+ userid);
String auth = username + ":" + passwd;
bb.writeLog("finishedWorkflowForwardByForceBack--requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
bb.writeLog("finishedWorkflowForwardByForceBack-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();
}
}
}

@ -1,6 +1,5 @@
package weaver.interfaces.dito.monitor;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
@ -13,6 +12,8 @@ import java.util.Map;
public class SendPortalMonitorArchvingUtil {
/***
*
*
*
* @param requestids
* @return
@ -28,7 +29,6 @@ public class SendPortalMonitorArchvingUtil {
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid \n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '') \n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11'))\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid in("+requestids+") ";
@ -54,6 +54,8 @@ public class SendPortalMonitorArchvingUtil {
/**
*
*
*
* @param userList
* @return
@ -75,7 +77,7 @@ public class SendPortalMonitorArchvingUtil {
" 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.preisremark in (18)\n" +
" and t.requestid in("+requestid +") and t.userid in("+current_userid+") " ;
rs.executeQuery(sql);
@ -106,6 +108,9 @@ public class SendPortalMonitorArchvingUtil {
/***
*
*
*
*
* @param userList
* @return
@ -159,6 +164,8 @@ public class SendPortalMonitorArchvingUtil {
/***
* @
* @
*
* @param userList
* @return

@ -21,6 +21,8 @@ import java.util.Map;
public class SendPortalMonitorDeleteUtil {
/**
*
*
*
* @param requestid
*/
@ -68,6 +70,10 @@ public class SendPortalMonitorDeleteUtil {
}
/**
*
*
*
*
*
* @param list
* @param loginid
@ -94,6 +100,8 @@ public class SendPortalMonitorDeleteUtil {
}
/***
*
* @param requestid
@ -108,7 +116,7 @@ public class SendPortalMonitorDeleteUtil {
private void monitorFinishedWorkflowCopyToByUserid(String requestid,String userid,String nodeid,String loginid,String workflowname,String requestname,String nodename,String notes){
BaseBean bb = new BaseBean();
bb.writeLog("monitorFinishedWorkflowCopyToByUserid-requestid:"+requestid);
String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorFinishedWorkflowCopyToByUserid" ;
String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil.monitorFinishedWorkflowCopyToByUserid" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
@ -126,15 +134,10 @@ public class SendPortalMonitorDeleteUtil {
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
// String objectAction = "0" ;
// String objectType = "0";
// String objectId = "" ;
RecordSet rs = new RecordSet();
JSONObject requestObject = new JSONObject();
try {
String createdate = TimeUtil.getCurrentDateString();
String createtime = TimeUtil.getCurrentTimeString();
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", "");
@ -145,35 +148,36 @@ public class SendPortalMonitorDeleteUtil {
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
requestObject.put("center",center);
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("monitorFinishedWorkflowCopyToByUserid:sql:"+basesql);
rs.executeQuery(basesql);
if(rs.next()){
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("creator",loginid);
requestObject.put("taskCode", requestid+"_cs_"+userid);
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",createdate+" "+createtime);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodename);
requestObject.put("ticketType",workflowname);
// JSONArray taskObjectList = new JSONArray();
// 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",objectId);
// taskObject.put("operatorCode",operatorCode);
// taskObjectList.add(taskObject);
// requestObject.put("taskObjectList",taskObjectList);
bb.writeLog("monitorFinishedWorkflowCopyToByUserid-requestObject:"+requestObject.toJSONString());
@ -187,6 +191,8 @@ public class SendPortalMonitorDeleteUtil {
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
// 抄送不需提交的话处理本人、本节点所有OA中抄送不需提交的数据
// updateCurrentOperatorRemark(requestid);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
@ -201,6 +207,8 @@ public class SendPortalMonitorDeleteUtil {
/***
*
*
*
* @param requestid
*/
@ -252,6 +260,9 @@ public class SendPortalMonitorDeleteUtil {
/***
*
*
*
*
* @param list
* @param loginid
@ -270,19 +281,18 @@ public class SendPortalMonitorDeleteUtil {
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-userid:"+userid);
bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-nodeid:"+nodeid);
bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-requestid:"+requestid);
bb.writeLog("monitorFinishedWorkflowForwardByRequestid-userid:"+userid);
bb.writeLog("monitorFinishedWorkflowForwardByRequestid-nodeid:"+nodeid);
bb.writeLog("monitorFinishedWorkflowForwardByRequestid-requestid:"+requestid);
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
monitorFinishedWorkflowForwardByUserId(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes);
}
}
}
/***
*
*
* @param requestid
* @param userid
* @param nodeid
@ -295,12 +305,11 @@ public class SendPortalMonitorDeleteUtil {
BaseBean bb = new BaseBean();
bb.writeLog("monitorFinishedWorkflowForwardByUserId-requestid:"+requestid);
// String notes = "流程页面删除后,删除未读的转发数据";
String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.monitorFinishedWorkflowForwardByUserId" ;
String resultCode = "" ;
String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil.monitorFinishedWorkflowForwardByUserId" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
RecordSet rs = new RecordSet();
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");
@ -313,34 +322,10 @@ public class SendPortalMonitorDeleteUtil {
String actionType = "3" ;
String terminal = "1" ;
String taskType = "1"; //0 待办 1 –待阅
String objectAction = "0" ;
String objectType = "0";
String objectId = "" ;
String nextNodeUserIds = "";
JSONObject requestObject = new JSONObject();
try {
String createdate = TimeUtil.getCurrentDateString();
String createtime = TimeUtil.getCurrentTimeString();
// String workcode = "";
// if(StringUtils.isNotBlank(forwardNodeUserId)){
// String sql = " select * from (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) w where w.id = '" + forwardNodeUserId + "'";
// rs.executeQuery(sql);
// while (rs.next()) {
// workcode = Util.null2String(rs.getString("loginid"));
// }
// }
// bb.writeLog("monitorFinishedWorkflowForwardByUserId-workcode:"+workcode);
// String forwardNodeName = "" ;
// if(StringUtils.isNotBlank(forwardNodeId)){
// rs.executeQuery(" select nodename from workflow_nodebase where id = ?",forwardNodeId);
// if (rs.next()){
// forwardNodeName = Util.null2String(rs.getString("nodename"));
// }
// }
// bb.writeLog("monitorFinishedWorkflowForwardByUserId-forwardNodeName:"+forwardNodeName);
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", "");
@ -352,35 +337,36 @@ public class SendPortalMonitorDeleteUtil {
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
requestObject.put("center",center);
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("monitorFinishedWorkflowForwardByUserId:sql:"+basesql);
rs.executeQuery(basesql);
if(rs.next()){
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("creator",workcode);
requestObject.put("taskCode", "weaver"+requestid+"_zf_"+userid);
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",createdate+" "+createtime);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",requestname);
requestObject.put("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodename);
requestObject.put("ticketType",workflowname);
// JSONArray taskObjectList = new JSONArray();
// JSONObject taskObject = new JSONObject();
// String objectCode = workcode ;
// String operatorCode = workcode ;
// taskObject.put("objectAction",objectAction);
// taskObject.put("objectType",objectType);
// taskObject.put("objectCode",objectCode);
// taskObject.put("objectId",objectId);
// taskObject.put("operatorCode",operatorCode);
// taskObjectList.add(taskObject);
// requestObject.put("taskObjectList",taskObjectList);
// bb.writeLog("monitorFinishedWorkflowForwardByUserId-requestObject:"+requestObject.toJSONString());
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
@ -388,14 +374,13 @@ public class SendPortalMonitorDeleteUtil {
if(StringUtils.isNotEmpty(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata);
if(msgObject.containsKey("resultCode")){
resultCode = msgObject.getString("resultCode");
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,nextNodeUserIds,notes);
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,nextNodeUserIds,notes);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
@ -406,7 +391,10 @@ public class SendPortalMonitorDeleteUtil {
/***
* @
* @
*
*
*
* @param requestid
*/
public List<Map<String,String>> queryWorkflowAtByRequestid(String requestid) {
@ -450,15 +438,21 @@ public class SendPortalMonitorDeleteUtil {
map.put("lcid",lcid);
list.add(map);
}
bb.writeLog("queryWorkflowAtByRequestid-list:" + list.size());
}
return list;
}
/***
* @
* @
* @
*
* @param list
* @param loginid
* @param notes
*/
public void monitorFinishedWorkflowAtByRequestid(List<Map<String,String>> list,String loginid,String notes){
BaseBean bb = new BaseBean();
@ -473,18 +467,19 @@ public class SendPortalMonitorDeleteUtil {
String requestname = Util.null2String(dataMap.get("requestname"));
String workflowname = Util.null2String(dataMap.get("workflowname"));
bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-userid:"+userid);
bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-nodeid:"+nodeid);
bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-requestid:"+requestid);
bb.writeLog("monitorFinishedWorkflowAtByRequestid-userid:"+userid);
bb.writeLog("monitorFinishedWorkflowAtByRequestid-nodeid:"+nodeid);
bb.writeLog("monitorFinishedWorkflowAtByRequestid-requestid:"+requestid);
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(nodeid)){
monitorFinishedWorkflowAtByUserId(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes);
}
}
}
/***
*
* @
* @param requestid
* @param userid
* @param nodeid
@ -496,6 +491,7 @@ public class SendPortalMonitorDeleteUtil {
private void monitorFinishedWorkflowAtByUserId(String requestid,String userid,String nodeid,String loginid,String workflowname,String requestname,String nodename,String notes){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
bb.writeLog("monitorFinishedWorkflowAtByUserId-requestid:"+requestid);
// String notes = "流程监控删除后,删除未读的@数据";
@ -507,7 +503,7 @@ public class SendPortalMonitorDeleteUtil {
String center = Constants.center;
String bpm_app_requesturl = Constants.bpm_app_requesturl;
String zhjkbs = "com.customization.dito.sendtodo.SendPortalWithDeleteUtil.completeRequestAtToReadData" ;
String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorDeleteUtil.monitorFinishedWorkflowAtByUserId" ;
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
@ -521,6 +517,7 @@ public class SendPortalMonitorDeleteUtil {
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;
@ -530,44 +527,144 @@ public class SendPortalMonitorDeleteUtil {
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
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("monitorFinishedWorkflowAtByUserId:sql:"+basesql);
rs.executeQuery(basesql);
if(rs.next()){
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
bb.writeLog("createrLoginId:"+createrLoginId);
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("title", requestname);
requestObject.put("taskType", taskType);
requestObject.put("actionType", actionType);
requestObject.put("createDate", processTime);
requestObject.put("messageTitle",requestname);
requestObject.put("messageContent", requestname);
requestObject.put("terminal", terminal);
requestObject.put("urlPc", urlPc);
requestObject.put("urlDing", urlDing);
requestObject.put("ticketType", workflowname);
requestObject.put("creator",loginid);
requestObject.put("urlApp",urlApp);
requestObject.put("nodeName",nodename);
requestObject.put("nodeId",nodeid);
requestObject.put("taskCode", "weaver"+requestid+"_at_"+userid);
String auth = username + ":" + passwd;
bb.writeLog("completeRequestAtToReadData--requestObject:" + requestObject.toJSONString());
bb.writeLog("monitorFinishedWorkflowAtByUserId--requestObject:" + requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
bb.writeLog("completeRequestAtToReadData-msgdata:" + msgdata);
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);
// updateCurrentOperatorAt(requestid);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid,notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/***
*
* @param requestid
*/
public void updateCurrentOperatorAt(String requestid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
try{
bb.writeLog("updateCurrentOperatorAt-requestid:"+requestid);
if(StringUtils.isNotBlank(requestid)){
String sql = " update workflow_currentoperator set isremark=2 where requestid = "+requestid +" and isremark <> 2 and preisremark in (18) ";
boolean isTrue = rs.executeUpdate(sql);
bb.writeLog("updateCurrentOperatorremark-sql:"+sql +" isTrue:"+isTrue);
}
}catch (Exception e){
bb.writeLog("updateCurrentOperatorremark-e:"+e);
}
}
public void updateCurrentOperatorRemark(String requestid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
try{
bb.writeLog("updateCurrentOperatorRemark-requestid:"+requestid);
if(StringUtils.isNotBlank(requestid)){
String sql = " update workflow_currentoperator set isremark=2 where requestid = "+requestid +" and isremark <> 2 and preisremark in (8) ";
boolean isTrue = rs.executeUpdate(sql);
bb.writeLog("updateCurrentOperatorremark-sql:"+sql +" isTrue:"+isTrue);
}
}catch (Exception e){
bb.writeLog("updateCurrentOperatorremark-e:"+e);
}
}
/**
* @2
* @param requestid
* @param nodeid
* @param userid
*/
public void updateCurrentOperatorAtByNode(String requestid,String nodeid,String userid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
try{
bb.writeLog("updateCurrentOperatorremark-requestid:"+requestid);
if(StringUtils.isNotBlank(requestid)){
String sql = " update workflow_currentoperator set isremark=2 where requestid = "+requestid +" and isremark <> 2 and preisremark in (18) and nodeid = "+nodeid +" and userid="+userid;
boolean isTrue = rs.executeUpdate(sql);
bb.writeLog("updateCurrentOperatorremark-sql:"+sql +" isTrue:"+isTrue);
}
}catch (Exception e){
bb.writeLog("updateCurrentOperatorremark-e:"+e);
}
}
/**
* 2
* @param requestid
* @param nodeid
* @param userid
*/
public void updateCurrentOperatorRemarkByNode(String requestid,String nodeid,String userid){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
try{
bb.writeLog("updateCurrentOperatorRemark-requestid:"+requestid);
if(StringUtils.isNotBlank(requestid)){
String sql = " update workflow_currentoperator set isremark=2 where requestid = "+requestid +" and isremark <> 2 and preisremark in (8) and nodeid = "+nodeid +" and userid="+userid;
boolean isTrue = rs.executeUpdate(sql);
bb.writeLog("updateCurrentOperatorremark-sql:"+sql +" isTrue:"+isTrue);
}
}catch (Exception e){
bb.writeLog("updateCurrentOperatorremark-e:"+e);
}
}
}

@ -0,0 +1,209 @@
package weaver.interfaces.dito.monitor;
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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SendPortalMonitorRepossessedUtil {
/**
*
*
* @return
*/
public List<Map<String,String>> queryWorkflowRemark89ByArchving(String requestids){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
String[] requestidArray = requestids.split(",");
for(int i=0;i<requestidArray.length;i++){
String requestid = requestidArray[i];
String currentnodeid = "";
String sql = " select currentnodeid from workflow_requestbase where requestid = "+requestid;
rs.executeQuery(sql);
if(rs.next()){
currentnodeid = Util.null2String(rs.getString("currentnodeid"));
}
bb.writeLog("queryWorkflowRemark89ByArchving:currentnodeid:"+currentnodeid);
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.preisremark in (8,9)\n" +
" and t.requestid in("+requestid +") and t.nodeid = "+currentnodeid ;
rs.executeQuery(sql);
bb.writeLog("queryWorkflowRemark89ByArchving-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<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);
list.add(map);
}
}
bb.writeLog("queryWorkflowRemark89ByArchving-list:"+list.size());
return list;
}
public void monitorRequestRemark89ByArchving(List<Map<String,String>> list,String loginid,String notes){
BaseBean bb = new BaseBean();
bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-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("monitorFinishedWorkflowCopyToByRequestid-userid:"+userid);
bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-nodeid:"+nodeid);
bb.writeLog("monitorFinishedWorkflowCopyToByRequestid-requestid:"+requestid);
if(StringUtils.isNotBlank(userid) && StringUtils.isNotBlank(requestid)){
monitorRequestRemark89ByUserid(requestid,userid,nodeid,loginid,workflowname,requestname,nodename,notes);
}
}
}
/***
*
* @param requestid
* @param userid
* @param nodeid
* @param loginid
* @param workflowname
* @param requestname
* @param nodename
* @param notes
*/
private void monitorRequestRemark89ByUserid(String requestid,String userid,String nodeid,String loginid,String workflowname,String requestname,String nodename,String notes){
BaseBean bb = new BaseBean();
bb.writeLog("monitorRequestRemark89ByUserid-requestid:"+requestid);
String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorRepossessedUtil.monitorRequestRemark89ByUserid" ;
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");
}
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("monitorRequestRemark89ByUserid:sql:"+basesql);
rs.executeQuery(basesql);
if(rs.next()){
createrLoginId = Util.null2String(rs.getString("loginid")) ;
}
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("monitorRequestRemark89ByUserid-requestObject:"+requestObject.toJSONString());
String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("monitorRequestRemark89ByUserid-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);
// 抄送不需提交的话处理本人、本节点所有OA中抄送不需提交的数据
// updateCurrentOperatorRemark(requestid);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -2,7 +2,7 @@ package weaver.interfaces.dito.monitor;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import weaver.general.TimeUtil;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import weaver.interfaces.dito.constant.Constants;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
@ -16,9 +16,7 @@ import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/***
@ -26,8 +24,9 @@ import java.util.Map;
*/
public class SendPortalMonitorUtil {
RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
/***
*
*
* @param requestids
* @param userid
*/
@ -45,7 +44,7 @@ public class SendPortalMonitorUtil {
}
/***
*
*
* @param requestid
* @param userid
*/
@ -65,16 +64,13 @@ public class SendPortalMonitorUtil {
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
JSONObject requestObject = new JSONObject();
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("SendPortalMonitorUtil--monitorDelete4Requestid:"+requestid);
bb.writeLog("monitorDelete4Requestid:"+requestid);
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", "");
@ -87,42 +83,32 @@ public class SendPortalMonitorUtil {
}
bb.writeLog("monitorDelete4Requestid-urlDing", urlDing);
String requestname = "" ;
String workflowname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("monitorDelete4Requestid--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
nodeId = Util.null2String(rs.getString("nodeid")) ;
nodeName = Util.null2String(rs.getString("nodeName")) ;
}
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");
requestObject.put("center",center);
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("nodeId",nodeId);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",workflowname);
String auth = username + ":" + passwd;
bb.writeLog("monitorDelete4Requestid---requestObject:"+requestObject.toJSONString());
@ -136,10 +122,10 @@ public class SendPortalMonitorUtil {
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"",notes);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",notes);
}
}
}
@ -149,114 +135,6 @@ public class SendPortalMonitorUtil {
}
/***
* second
* @param requestid
* @param second
*/
// public void againMonitorDelete(String requestid,String userid,int second){
// String zhjkbs = "weaver.interfaces.dito.monitor.SendPortalMonitorUtil.againMonitorDelete" ;
//
// 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;
//
// try {
// if(second > 0){
// Thread.sleep(second);
// }
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
//
// SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
// HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
// String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
// JSONObject requestObject = new JSONObject();
// RecordSet rs = new RecordSet();
// BaseBean bb = new BaseBean();
// bb.writeLog("SendPortalMonitorUtil--againMonitorDelete");
// String terminal = "1" ;
// String taskType = "0";
// 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");
// }
// bb.writeLog("againMonitorDelete-urlDing", urlDing);
//
// String requestname = "" ;
// String workflowname = "" ;
// String nodeId = "" ;
// String nodeName = "" ;
// String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
// " from workflow_requestbase t1\n" +
// " inner join workflow_base t3 on t1.workflowid = t3.id\n" +
// " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
// " and t1.requestid = "+requestid ;
//
// bb.writeLog("againMonitorDelete--sql2:"+sql);
//
// rs.executeQuery(sql);
// if (rs.next()){
// requestname = Util.null2String(rs.getString("requestname")) ;
// workflowname = Util.null2String(rs.getString("workflowname")) ;
// nodeId = Util.null2String(rs.getString("nodeid")) ;
// nodeName = Util.null2String(rs.getString("nodeName")) ;
// }
//
// requestObject.put("center",center);
// requestObject.put("title",requestname);
// requestObject.put("taskCode","weaver"+requestid);
// requestObject.put("nodeId",nodeId);
// requestObject.put("taskType",taskType);
// requestObject.put("actionType",actionType);
// requestObject.put("createDate",processTime);
// requestObject.put("messageTitle",getShortMessageTitle(requestname));
// requestObject.put("messageContent",requestname);
// requestObject.put("terminal",terminal);
// requestObject.put("urlPc",urlPc);
// requestObject.put("urlApp",urlApp);
// requestObject.put("urlDing",urlDing);
// requestObject.put("nodeName",nodeName);
// requestObject.put("ticketType",workflowname);
//
// String auth = username + ":" + passwd;
// bb.writeLog("againMonitorDelete---requestObject:"+requestObject.toJSONString());
// String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
// bb.writeLog("againMonitorDelete-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.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,"",zhjkbs,"");
// }else{
// String resultmsg = msgObject.getString("resultMsg");
// sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"");
// }
// }
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
/***
*
*/
@ -270,12 +148,12 @@ public class SendPortalMonitorUtil {
* @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);
}
@ -289,6 +167,7 @@ public class SendPortalMonitorUtil {
*/
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;
@ -302,18 +181,13 @@ public class SendPortalMonitorUtil {
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
JSONObject requestObject = new JSONObject();
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("monitorArchivedByTodo4Requestid--monitorArchivedByTodo");
bb.writeLog("monitorArchivedByTodo4Requestid");
String terminal = "1" ;
String taskType = "0";
String actionType = "3" ;
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
try {
@ -326,112 +200,51 @@ public class SendPortalMonitorUtil {
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
bb.writeLog("monitorArchivedByTodo4Requestid-urlDing", urlDing);
// int count = 0 ;
// String countSql =" select t2.userid \n" +
// " from workflow_requestbase t1\n" +
// " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
// " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','7','11')) \n" +
// " and t2.islasttimes = 1\n" +
// " and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid ;
//
// bb.writeLog("monitorArchivedByTodo--countSql:"+countSql);
// rs.executeQuery(countSql);
// while (rs.next()){
// count++;
// }
// bb.writeLog("monitorArchivedByTodo--count:"+count);
// if(count >0){
String requestname = "" ;
String workflowname = "" ;
String currentNodeId = "" ;
String currentNodeName = "" ;
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("monitorArchivedByTodo4Requestid--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
}
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",currentNodeName);
requestObject.put("ticketType",workflowname);
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();
// sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
// " from workflow_requestbase t1\n" +
// " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
// " left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
// " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
// " left join workflow_nodebase d1 on d1.id = t2.nodeid "+
// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
// " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1','5','7','11')) \n" +
// " and t2.islasttimes = 1 \n" +
// " and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid ;
//
// rs.executeQuery(sql);
// while (rs.next()) {
// String creator = rs.getString("loginid");
// String staffid = rs.getString("staffid");
// bb.writeLog("monitorArchived:"+requestid+" creator:"+creator);
// if ("sysadmin".equals(creator)) {
// creator = "Admin";
// }
//
// JSONObject taskObject = new JSONObject();
// taskObject.put("objectAction", "0");
// taskObject.put("objectType", "0");
// taskObject.put("objectCode", creator);
// taskObject.put("objectId", staffid);
// taskObject.put("operatorCode", creator);
// taskObjectList.add(taskObject);
// }
// requestObject.put("taskObjectList",taskObjectList);
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);
String auth = username + ":" + passwd;
bb.writeLog("monitorArchivedByTodo4Requestid---requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
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 (!"".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,"");
}
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();
}
@ -479,7 +292,7 @@ public class SendPortalMonitorUtil {
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("SendPortalMonitorUtil--monitorArchivedByToRead4Rquestid");
bb.writeLog("monitorArchivedByToRead4Rquestid");
String terminal = "1" ;
String taskType = "1";
String actionType = "0" ;
@ -501,40 +314,26 @@ public class SendPortalMonitorUtil {
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
bb.writeLog("monitorArchivedByToRead4Rquestid-urlDing", urlDing);
String requestname = "" ;
String workflowname = "" ;
String currentNodeId = "" ;
String currentNodeName = "" ;
String currentnodetype = "" ;
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,t1.currentnodetype \n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("monitorArchivedByToRead4Rquestid--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
currentnodetype = Util.null2String(rs.getString("currentnodetype")) ;
}
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();
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 where status = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.id \n" ;
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()) {
@ -542,10 +341,6 @@ public class SendPortalMonitorUtil {
String staffid = rs.getString("staffid");
String userid = rs.getString("userid");
bb.writeLog("monitorArchivedByToRead4Rquestid:"+requestid+" creator:"+creator);
if ("sysadmin".equals(creator)) {
creator = "Admin";
}
JSONObject taskObject = new JSONObject();
taskObject.put("staffid", staffid);
taskObject.put("creator",creator);
@ -561,21 +356,24 @@ public class SendPortalMonitorUtil {
String creator = dataObject.getString("creator");
JSONObject requestObject = new JSONObject();
requestObject.put("center",center);
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("taskCode", requestid+"_cs_"+userid);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
JSONObject taskObject = new JSONObject();
String objectCode = creator ;
@ -652,10 +450,8 @@ public class SendPortalMonitorUtil {
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
JSONObject requestObject = new JSONObject();
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("SendPortalMonitorUtil--monitorPossessed4Requestid");
String terminal = "1" ;
String taskType = "0";
String actionType = "2" ;
@ -682,90 +478,56 @@ public class SendPortalMonitorUtil {
}
bb.writeLog("monitorPossessed4Requestid-urlDing", urlDing);
int count = 0 ;
String countSql=" select t2.userid \n" +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
bb.writeLog("monitorArchived--countSql:"+countSql);
rs.executeQuery(countSql);
while (rs.next()){
count++;
}
int count = requestBaseInfoUtil.getTodoCountByRequestid(requestid);
bb.writeLog("monitorPossessed4Requestid--count:"+count);
if(count >0){
String requestname = "" ;
String workflowname = "" ;
String currentNodeId = "" ;
String currentNodeName = "" ;
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 sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
JSONObject requestObject = new JSONObject();
bb.writeLog("monitorPossessed4Requestid--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
}
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("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",currentNodeName);
requestObject.put("ticketType",workflowname);
JSONArray taskObjectList = new JSONArray();
sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
" left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
" left join workflow_nodebase d1 on d1.id = t2.nodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" +
" and t2.islasttimes = 1 \n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
String sql =" select t2.userid,h1.loginid,h1.lastname,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.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
rs.executeQuery(sql);
while (rs.next()) {
//归档节点抄送
String creator = rs.getString("loginid");
String staffid = rs.getString("staffid");
String userid = Util.null2String(rs.getString("userid")) ;
nextNodeUserIds += StringUtils.isBlank(nextNodeUserIds) ? userid :","+userid ;
bb.writeLog("monitorPossessed4Requestid:"+requestid+" creator:"+creator);
if ("sysadmin".equals(creator)) {
creator = "Admin";
}
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction", objectAction);
@ -831,12 +593,14 @@ public class SendPortalMonitorUtil {
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());
}
}
@ -859,7 +623,11 @@ public class SendPortalMonitorUtil {
monitorInterventionByUserId(requestid,currentUserId);
}
/***
*
* @param requestid
* @param currentUserId
*/
public void monitorInterventionByUserId(String requestid,String currentUserId){
String portal_todourl = Constants.portal_todourl;
@ -875,7 +643,7 @@ public class SendPortalMonitorUtil {
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
JSONObject requestObject = new JSONObject();
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("SendPortalMonitorUtil--monitorIntervention");
@ -883,9 +651,6 @@ public class SendPortalMonitorUtil {
String taskType = "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 ;
@ -899,48 +664,37 @@ public class SendPortalMonitorUtil {
}
bb.writeLog("monitorIntervention-urlDing", urlDing);
String requestname = "" ;
String workflowname = "" ;
String currentNodeId = "" ;
String currentNodeName = "" ;
String currentNodeType = "" ;
String sql =" select t1.requestname,t1.currentnodeid,d1.nodename,t3.workflowname,t1.currentnodetype \n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("monitorIntervention--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
currentNodeId = Util.null2String(rs.getString("currentnodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
currentNodeType = Util.null2String(rs.getString("currentNodeType")) ;
}
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)){
if("3".equals(currentnodetype)){
String actionType = "3" ;
requestObject.put("center",center);
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("taskCode","weaver"+requestid);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
String auth = username + ":" + passwd;
bb.writeLog("monitorIntervention---requestObject:"+requestObject.toJSONString());
@ -962,70 +716,43 @@ public class SendPortalMonitorUtil {
String actionType = "2" ;
String nextNodeUserIds = "";
int count = 0 ;
String countSql = " select t2.userid \n" +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
bb.writeLog("monitorIntervention--countSql:"+countSql);
rs.executeQuery(countSql);
while (rs.next()){
count++;
}
int count = requestBaseInfoUtil.getTodoCountByRequestid(requestid) ;
bb.writeLog("monitorIntervention--count:"+count);
if(count >0){
requestObject.put("center",center);
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("taskCode","weaver"+requestid);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
JSONArray taskObjectList = new JSONArray();
sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
" left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
" left join workflow_nodebase d1 on d1.id = t2.nodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" +
" and t2.islasttimes = 1 \n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
String sql = requestBaseInfoUtil.getTodoSql(requestid);
rs.executeQuery(sql);
while (rs.next()) {
String creator = rs.getString("loginid");
String loginid = rs.getString("loginid");
String staffid = rs.getString("staffid") ;
String userid = Util.null2String(rs.getString("userid")) ;
nextNodeUserIds += StringUtils.isEmpty(nextNodeUserIds) ? userid : ","+userid ;
bb.writeLog("monitorIntervention:"+requestid+" creator:"+creator);
if ("sysadmin".equals(creator)) {
creator = "Admin";
}
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction", "0");
taskObject.put("objectType", "0");
taskObject.put("objectCode", creator);
taskObject.put("objectCode", loginid);
taskObject.put("objectId", staffid);
taskObject.put("operatorCode", creator);
taskObject.put("operatorCode", loginid);
taskObjectList.add(taskObject);
}
requestObject.put("taskObjectList",taskObjectList);

@ -22,6 +22,10 @@ public class HrmRocketmqRunnable implements Runnable {
private String cus_eid;
private JSONObject datasObject;
private String modedatacreatedate;
private String modedatacreatetime;
public HrmRocketmqRunnable(String personno, String managerno, String personid, String managerid, String cus_eid, JSONObject datasObject) {
this.personno = personno.trim();
this.managerno = managerno;
@ -29,6 +33,9 @@ public class HrmRocketmqRunnable implements Runnable {
this.managerid = managerid;
this.cus_eid = cus_eid;
this.datasObject = datasObject;
this.modedatacreatedate = modedatacreatedate;
this.modedatacreatetime = modedatacreatetime;
}
@Override
@ -118,7 +125,7 @@ public class HrmRocketmqRunnable implements Runnable {
dataMap.put("zxyj", sql);
dataMap.put("zxcs", HrmRocketmqUtil.convertObject2String(objects));
dataMap.put("personno", personno);
hrmRocketmqUtil.recordErrorData(dataMap);
hrmRocketmqUtil.recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
} else {
if (StringUtils.isNotBlank(personid) && StringUtils.isBlank(managerid)) {
@ -150,7 +157,7 @@ public class HrmRocketmqRunnable implements Runnable {
dataMap.put("zxyj", sql);
dataMap.put("zxcs", managerid + "," + personid);
dataMap.put("personno", personno);
hrmRocketmqUtil.recordErrorData(dataMap);
hrmRocketmqUtil.recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
} else if (StringUtils.isBlank(personid) && StringUtils.isNotBlank(managerid)) {
@ -161,7 +168,7 @@ public class HrmRocketmqRunnable implements Runnable {
dataMap.put("systable", "cus_fielddata");
dataMap.put("errmessage", "入参参数personno未空在cus_fielddata查询为空");
dataMap.put("personno", personno);
hrmRocketmqUtil.recordErrorData(dataMap);
hrmRocketmqUtil.recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
} else if (StringUtils.isBlank(personid) && StringUtils.isBlank(managerid)) {
Map<String, String> dataMap = new HashMap<String, String>();
@ -171,7 +178,7 @@ public class HrmRocketmqRunnable implements Runnable {
dataMap.put("systable", "cus_fielddata");
dataMap.put("errmessage", "入参参数personno、managerno未空在cus_fielddata查询为空");
dataMap.put("personno", personno);
hrmRocketmqUtil.recordErrorData(dataMap);
hrmRocketmqUtil.recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
}
}

@ -12,10 +12,7 @@ import weaver.hrm.resource.ResourceComInfo;
import weaver.interfaces.dito.comInfo.PropBean;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.*;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@ -34,16 +31,25 @@ public class HrmRocketmqUtil {
String cus_eid = PropBean.getUfPropValue("cus_eid") ;
SimpleDateFormat modesdf1 = new SimpleDateFormat("yyyy-MM-dd");//当前时间日期
SimpleDateFormat modesdf2 = new SimpleDateFormat("HH:mm:ss");
String modedatacreatedate = modesdf1.format(new Date());
String modedatacreatetime = modesdf2.format(new Date());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String nowDateTime = sdf.format(new Date());
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
String nowDate = sdf2.format(new Date());
JSONObject jsonObject = JSONObject.parseObject(data);
bb.writeLog("updateOrgData---jsonObject:"+jsonObject.toJSONString());
if(jsonObject.containsKey("masterInfo"))
{
JSONObject masterInfoObject = jsonObject.getJSONObject("masterInfo");
bb.writeLog("updateOrgData---masterInfoObject:"+masterInfoObject.toJSONString());
if(masterInfoObject.containsKey("datas")){
List<Map<String,String>> notEffList = new ArrayList<Map<String,String>>();
JSONArray datasArray = masterInfoObject.getJSONArray("datas");
for(int i=0;i<datasArray.size();i++)
{
@ -51,6 +57,8 @@ public class HrmRocketmqUtil {
String personno = datasObject.getString("personno").trim();
String managerno = datasObject.getString("managerno").trim();
String status = datasObject.getString("status");
String enddate = datasObject.getString("enddate");
String startdate = datasObject.getString("startdate");
bb.writeLog("updateOrgData---personno:"+personno);
bb.writeLog("updateOrgData---managerno:"+managerno);
@ -61,7 +69,6 @@ public class HrmRocketmqUtil {
if(StringUtils.isNotEmpty(personno) && StringUtils.isNotEmpty(managerno)) {
String personid = convertPersonno2PersonId(cus_eid,personno);
if(StringUtils.isBlank(personid)){
personid = convertPersonno2PersonId(cus_eid,personno);
}
@ -70,50 +77,74 @@ public class HrmRocketmqUtil {
personid = convertPersonno2PersonId(cus_eid,personno);
}
bb.writeLog("personid3:"+personid);
String managerid = convertManagerno2ManagerId(cus_eid,managerno);
bb.writeLog("managerid:"+managerid);
if(StringUtils.isBlank(managerid)){
managerid = convertManagerno2ManagerId(cus_eid,managerno);
}
bb.writeLog("managerid2:"+managerid);
if(StringUtils.isNotEmpty(personid) && StringUtils.isNotEmpty(managerid)) {
Map<String,String> dataMap = new HashMap<String,String>();
if((startdate.compareTo(nowDate) <=0 && enddate.compareTo(nowDate) >=0) || (startdate.compareTo(nowDate) <=0 && StringUtils.isBlank(enddate))){
String sql = " update hrmresource set managerid = ? where id = ? ";
Map<String,String> dataMap = new HashMap<String,String>();
String sql = " update hrmresource set managerid = ? where id = ? ";
Object[] objects = new Object[]{managerid,personid} ;
boolean flag = rs.executeUpdate(sql,objects);
bb.writeLog("flag:"+flag);
if(flag){
dataMap.put("errmessage","人员更新SQL执行成功");
dataMap.put("zxjg","true");
Object[] objects = new Object[]{managerid,personid} ;
ResourceComInfo resComInfo;
try {
resComInfo = new ResourceComInfo();
resComInfo.removeResourceCache();
} catch (Exception e) {
bb.writeLog(e);
}
}else{
errcount++;
dataMap.put("errmessage","人员更新SQL执行错误,managerid:"+managerid+"、personid:"+personid);
dataMap.put("zxjg","false");
}
boolean flag = rs.executeUpdate(sql,objects);
bb.writeLog("flag:"+flag);
dataMap.put("syndate",nowDateTime);
dataMap.put("reqmessage",jsonObject.toJSONString());
dataMap.put("reqobject",datasObject.toJSONString());
dataMap.put("systable","hrmresource");
dataMap.put("zxyj",sql);
dataMap.put("zxcs",convertObject2String(objects));
dataMap.put("personno",personno);
dataMap.put("errmessage","当前日期:"+nowDate+"在:"+startdate+"-"+enddate+"范围内 ");
recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
if(!flag){
errcount++;
dataMap.put("errmessage","人员更新SQL执行错误,managerid:"+managerid+"、personid:"+personid);
dataMap.put("zxjg","false");
}else{
dataMap.put("errmessage","人员更新SQL执行成功");
dataMap.put("zxjg","true");
Map<String,String> dataMap = new HashMap<String,String>();
dataMap.put("syndate",nowDateTime);
dataMap.put("reqmessage",jsonObject.toJSONString());
dataMap.put("reqobject",datasObject.toJSONString());
dataMap.put("systable","hrmresource");
dataMap.put("errmessage","当前日期:"+nowDate+"不在:"+startdate+"-"+enddate+"范围内,写入建模表");
recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
}
dataMap.put("syndate",nowDateTime);
dataMap.put("reqmessage",jsonObject.toJSONString());
dataMap.put("reqobject",datasObject.toJSONString());
dataMap.put("systable","hrmresource");
dataMap.put("zxyj",sql);
dataMap.put("zxcs",convertObject2String(objects));
dataMap.put("personno",personno);
recordErrorData(dataMap);
Map<String,String> notEffMap = new HashMap<String,String>();
notEffMap.put("personno",personno);
notEffMap.put("managerno",managerno);
notEffMap.put("startdate",startdate);
notEffMap.put("enddate",enddate);
notEffMap.put("personid",personid);
notEffMap.put("managerid",managerid);
notEffList.add(notEffMap);
}else{
if(StringUtils.isNotBlank(personid) && StringUtils.isBlank(managerid)){
Map<String,String> dataMap = new HashMap<String,String>();
String sql = " update hrmresource set managerid = null where id = "+personid;
boolean flag = rs.executeUpdate(sql);
bb.writeLog("flag:"+flag);
@ -133,7 +164,7 @@ public class HrmRocketmqUtil {
dataMap.put("zxyj",sql);
dataMap.put("zxcs",managerid+","+personid);
dataMap.put("personno",personno);
recordErrorData(dataMap);
recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
}else if(StringUtils.isBlank(personid) && StringUtils.isNotBlank(managerid)){
@ -144,7 +175,7 @@ public class HrmRocketmqUtil {
dataMap.put("systable","hrmresource");
dataMap.put("errmessage","入参参数personno未空在cus_fielddata查询为空");
dataMap.put("personno",personno);
recordErrorData(dataMap);
recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
updateManagerByRunner(personno,managerno,personid,managerid,cus_eid,datasObject);
@ -156,7 +187,7 @@ public class HrmRocketmqUtil {
dataMap.put("systable","hrmresource");
dataMap.put("errmessage","入参参数personno、managerno未空在cus_fielddata查询为空");
dataMap.put("personno",personno);
recordErrorData(dataMap);
recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
updateManagerByRunner(personno,managerno,personid,managerid,cus_eid,datasObject);
}
@ -168,9 +199,10 @@ public class HrmRocketmqUtil {
dataMap.put("reqmessage",jsonObject.toJSONString());
dataMap.put("reqobject",datasObject.toJSONString());
dataMap.put("systable","hrmresource");
dataMap.put("errmessage","入参参数personno、managerno空");
recordErrorData(dataMap);
dataMap.put("errmessage","入参参数personno、managerno空");
recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
}
}else{
Map<String,String> dataMap = new HashMap<String,String>();
@ -180,17 +212,12 @@ public class HrmRocketmqUtil {
dataMap.put("systable","hrmresource");
dataMap.put("errmessage","入参参数status不为1");
dataMap.put("personno",personno);
recordErrorData(dataMap);
recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
}
}
ResourceComInfo resComInfo;
try {
resComInfo = new ResourceComInfo();
resComInfo.removeResourceCache();
} catch (Exception e) {
bb.writeLog(e);
}
recordNotEffectiveData(notEffList,modedatacreatedate,modedatacreatetime);
}else{
Map<String,String> dataMap = new HashMap<String,String>();
@ -198,8 +225,7 @@ public class HrmRocketmqUtil {
dataMap.put("reqmessage",jsonObject.toJSONString());
dataMap.put("systable","hrmresource");
dataMap.put("errmessage","入参参数缺少datas");
recordErrorData(dataMap);
recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
}
}else{
@ -208,8 +234,7 @@ public class HrmRocketmqUtil {
dataMap.put("reqmessage",jsonObject.toJSONString());
dataMap.put("systable","hrmresource");
dataMap.put("errmessage","入参参数缺少masterInfo");
recordErrorData(dataMap);
recordErrorData(dataMap,modedatacreatedate,modedatacreatetime);
}
}catch (Exception e){
bb.writeLog("e:"+e);
@ -219,23 +244,25 @@ public class HrmRocketmqUtil {
return errcount;
}
public void updateHrmResourceManager(){
}
/***
*
*/
public void recordErrorData(Map<String,String> dataMap){
public void recordErrorData(Map<String,String> dataMap,String modedatacreatedate,String modedatacreatetime){
String uftable = "uf_managermq" ;
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
ModeRightInfo mode=new ModeRightInfo();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");//当前时间日期
SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
int formmodeid = 0 ;
String modedatacreater = "1" ;
String modedatacreatertype = "0" ;
String modedatacreatedate = sdf1.format(new Date());
String modedatacreatetime = sdf2.format(new Date());
String uuid = UUID.randomUUID().toString();
try {
@ -365,5 +392,89 @@ public class HrmRocketmqUtil {
return managerid ;
}
/**
*
* @param notEffList
* @param modedatacreatedate
* @param modedatacreatetime
* @return
*/
public String recordNotEffectiveData(List<Map<String,String>> notEffList,String modedatacreatedate,String modedatacreatetime){
String dataid = "";
String uftable = "uf_managerunenforced" ;
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
ModeRightInfo mode=new ModeRightInfo();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");//当前时间日期
SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
int formmodeid = 0 ;
String modedatacreater = "1" ;
String modedatacreatertype = "0" ;
String uuid = UUID.randomUUID().toString();
try {
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = ? " ;
rs.executeQuery(sql,new Object[]{uftable});
if(rs.next()){
formmodeid = Util.getIntValue(Util.null2String(rs.getString("id")));
}
String userids = "";
for(int i=0;i<notEffList.size();i++){
Map<String,String> notEffMap = notEffList.get(i);
String personid = Util.null2String(notEffMap.get("personid"));
if(StringUtils.isNotEmpty(personid)){
userids += StringUtils.isBlank(userids) ? personid : ","+personid ;
}
}
bb.writeLog(" recordNotEffectiveData-userids:"+userids);
if(StringUtils.isNotEmpty(userids)){
sql = " update "+uftable+" set sfsx = 1 where personid in("+userids+") ";
boolean isTrue = rs.executeUpdate(sql);
bb.writeLog(sql+" isTrue:"+isTrue);
}
for(int i=0;i<notEffList.size();i++){
Map<String,String> dataMap = notEffList.get(i);
String personno = Util.null2String(dataMap.get("personno"));
String managerno = Util.null2String(dataMap.get("managerno"));
String startdate = Util.null2String(dataMap.get("startdate"));
String enddate = Util.null2String(dataMap.get("enddate"));
String personid = Util.null2String(dataMap.get("personid"));
String managerid = Util.null2String(dataMap.get("managerid"));
bb.writeLog("personid:"+personid+" managerid:"+managerid);
int bool = 0;
if(StringUtils.isNotEmpty(enddate)){
sql =" insert into "+uftable+"(uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,personno,managerno,startdate,enddate,personid,managerid,sfsx,sfgx)" +
" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)" ;
boolean flag = rs.executeUpdate(sql,new Object[]{uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,personno,managerno,startdate,enddate,personid,managerid,"0","0"});
bb.writeLog("sql1;"+sql);
if(flag){
bool++;
}
}else{
sql =" insert into "+uftable+"(uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,personno,managerno,startdate,personid,managerid,sfsx,sfgx)" +
" values(?,?,?,?,?,?,?,?,?,?,?,?,?)" ;
boolean flag = rs.executeUpdate(sql,new Object[]{uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,personno,managerno,startdate,personid,managerid,"0","0"});
bb.writeLog("sql2;"+sql);
if(flag){
bool++;
}
}
bb.writeLog("bool;"+bool);
}
}catch (Exception e){
bb.writeLog("e:"+e);
}
return dataid;
}
}

@ -62,7 +62,7 @@ public class RocketmqUtil {
if("organization".equals(tableName)){
updasteSysOrgData(jsonArray,tableName);
}else if("system_user".equals(tableName)){
// updateSysUserData(jsonArray,tableName);
updateSysUserData(jsonArray,tableName);
}else if("system_roles".equals(tableName)){
updasteSysRoleData(jsonArray,tableName);
}else if("system_post".equals(tableName)){
@ -653,7 +653,7 @@ public class RocketmqUtil {
// "updateStaff":"1"}],"tableName":"system_user_role","primaryKey":"sysUserRoleId"}],"key":"svcCont"}
/***
*
* sysUserId
* @param jsonArray
*/
public void updateSystemUserRoleData(JSONArray jsonArray, String tableName) {
@ -931,7 +931,7 @@ public class RocketmqUtil {
// "primaryKey":"sysUserPostId"}],"key":"svcCont"}
/***
*
* sysUserId
* @param jsonArray
*/
public void updateSystemUserPostData(JSONArray jsonArray, String tableName) {
@ -1696,6 +1696,11 @@ public class RocketmqUtil {
// "staffName":"fanweiceshi12","actType":"A","sysUserId":20102,"partyId":"-1","staffId":"22061",
// "createDate":"2022-08-09 09:47:54","updateStaff":"1"}],"tableName":"staff","primaryKey":"staffId"}],"key":"svcCont"}
/**
* staffid outkey
* @param jsonArray
* @param tableName
*/
public void updateStaffData(JSONArray jsonArray, String tableName){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
@ -1740,7 +1745,7 @@ public class RocketmqUtil {
String orgCode = Util.null2String(jsonObject.get("orgCode"));
String staffName = Util.null2String(jsonObject.get("staffName"));
String staffCode = Util.null2String(jsonObject.get("staffCode"));
String staffCode = Util.null2String(jsonObject.get("staffCode")).trim();
bb.writeLog("staffCode:"+staffCode);
String actType = Util.null2String(jsonObject.get("actType"));
String email = "" ;

@ -2,6 +2,7 @@ package weaver.interfaces.dito.overtime;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.interfaces.dito.constant.Constants;
import com.customization.dito.sendtodo.HttpRequestUtil;
@ -12,12 +13,14 @@ import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.dito.comInfo.PropBean;
import java.net.URLEncoder;
import java.util.Map;
/***
*
*/
public class SendPortalOverTimeSubmitUtil {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
public void sendOverTimeSubmit(String requestid,String userids){
BaseBean bb = new BaseBean();
bb.writeLog("SendPortalOverTimeSubmitUtil");
@ -49,7 +52,6 @@ public class SendPortalOverTimeSubmitUtil {
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
JSONObject requestObject = new JSONObject();
bb.writeLog("SendPortalOverTimeSubmitUtil--sendOverTimeSubmitBytoDo");
String terminal = "1" ;
String taskType = "0";
@ -58,9 +60,6 @@ public class SendPortalOverTimeSubmitUtil {
String currentUserId= "1";
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 ;
@ -74,48 +73,29 @@ public class SendPortalOverTimeSubmitUtil {
}
bb.writeLog("monitorArchived-urlDing", urlDing);
int count = 0 ;
String countSql=" select t2.userid \n" +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
int count = requestBaseInfoUtil.getTodoCountByRequestid(requestid);
bb.writeLog("sendOverTimeSubmitBytoDo--countSql:"+countSql);
rs.executeQuery(countSql);
while (rs.next()){
count++;
}
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");
message +=",待办数量为"+count ;
bb.writeLog("sendOverTimeSubmitBytoDo--count:"+count);
if(count >0){
String actionType = "2" ;
String requestname = "" ;
String workflowname = "" ;
String currentNodeId = "" ;
String currentNodeName = "" ;
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("sendOverTimeSubmitBytoDo--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
}
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("title",requestname);
@ -135,29 +115,14 @@ public class SendPortalOverTimeSubmitUtil {
JSONArray taskObjectList = new JSONArray();
sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
" left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
" left join workflow_nodebase d1 on d1.id = t2.nodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" +
" and t2.islasttimes = 1 \n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
String sql = requestBaseInfoUtil.getTodoSql(requestid);
bb.writeLog("sendTodoDataByNode--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()) {
//归档节点抄送
String creator = rs.getString("loginid");
String staffid = rs.getString("staffid");
bb.writeLog("sendOverTimeSubmitBytoDo:"+requestid+" creator:"+creator);
if ("sysadmin".equals(creator)) {
creator = "Admin";
}
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction",objectAction);
taskObject.put("objectType", objectType);
@ -208,42 +173,24 @@ public class SendPortalOverTimeSubmitUtil {
message += "执行actionType=3" ;
String actionType = "3" ;
String requestname = "" ;
String workflowname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("monitorDelete4Requestid--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
nodeId = Util.null2String(rs.getString("nodeid")) ;
nodeName = Util.null2String(rs.getString("nodeName")) ;
}
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("title",requestname);
requestObject.put("taskCode","weaver"+requestid);
requestObject.put("nodeId",nodeId);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",workflowname);
String auth = username + ":" + passwd;
bb.writeLog("sendTodoDataByNode-3-requestObject:"+requestObject.toJSONString());
@ -258,15 +205,13 @@ public class SendPortalOverTimeSubmitUtil {
if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,"",message);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,"",message);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2Optimize(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"",message);
}
}
}
}else{
}
}
} catch (Exception e) {
@ -322,43 +267,27 @@ public class SendPortalOverTimeSubmitUtil {
}
bb.writeLog("sendOverTimeSubmitBytoRead-urlDing"+ urlDing);
String requestname = "" ;
String workflowname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("sendOverTimeSubmitBytoRead--sql2:"+sql);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
nodeId = Util.null2String(rs.getString("nodeid")) ;
nodeName = Util.null2String(rs.getString("nodeName")) ;
}
bb.writeLog("sendOverTimeSubmitBytoRead--nodeId:"+nodeId);
bb.writeLog("sendOverTimeSubmitBytoRead--nodeName:"+nodeName);
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();
sql = " select t2.userid,h1.loginid,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
" left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
" left join workflow_nodebase d1 on d1.id = t2.nodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t2.isremark in ('8','9')\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid +
" ";
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')\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid +" and t2.nodeid = "+currentNodeId ;
bb.writeLog("sendOverTimeSubmitBytoRead--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()) {
@ -367,11 +296,6 @@ public class SendPortalOverTimeSubmitUtil {
String staffid = rs.getString("staffid");
String userid = rs.getString("userid");
bb.writeLog("sendOverTimeSubmitBytoRead:"+requestid+" creator:"+creator+" staffid:"+staffid);
if ("sysadmin".equals(creator)) {
creator = "Admin";
}
JSONObject taskObject = new JSONObject();
taskObject.put("creator", creator);
taskObject.put("staffid", staffid);
@ -382,36 +306,38 @@ public class SendPortalOverTimeSubmitUtil {
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 taskObject = new JSONObject();
taskObject.put("objectAction", objectAction);
taskObject.put("objectType", objectType);
taskObject.put("objectCode", creator);
taskObject.put("objectId", staffid);
taskObject.put("operatorCode", creator);
JSONArray taskArray = new JSONArray();
taskArray.add(taskObject);
JSONObject requestObject = new JSONObject();
requestObject.put("center",center);
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("taskCode", requestid+"_cs_"+userid);
requestObject.put("messageContent",requestname);
requestObject.put("nodeId",currentNodeId);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("nodeId",nodeId);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",workflowname);
String staffid = dataObject.getString("staffid");
String creator = dataObject.getString("creator");
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction", objectAction);
taskObject.put("objectType", objectType);
taskObject.put("objectCode", creator);
taskObject.put("objectId", staffid);
taskObject.put("operatorCode", creator);
JSONArray taskArray = new JSONArray();
taskArray.add(taskObject);
requestObject.put("taskObjectList",taskArray);
String auth = username + ":" + passwd;
@ -422,10 +348,10 @@ public class SendPortalOverTimeSubmitUtil {
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,userid);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,userid);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid);
}
}
}

@ -24,13 +24,15 @@ public class completeRequestRemark8AtUtil {
List<Map<String, String>> atList = new ArrayList<Map<String, String>>();
Map<String, String> map = null;
String sql =" select t.userid,t.nodeid,t.requestid,t2.nodename,t1.requestname,t3.workflowname,t.preisremark \n" +
int remark9count = 0;
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.preisremark in (8,18) \n" +
" and t.preisremark in (8,9,18) \n" +
" and t.requestid ="+requestid +
" and t.userid="+userid+" and t.nodeid = "+current_nodeid;
@ -56,14 +58,29 @@ public class completeRequestRemark8AtUtil {
remark8List.add(map);
}else if("18".equals(preisremark)){
atList.add(map);
}else if("9".equals(preisremark)){
remark9count++;
}
}
bb.writeLog("OpenRequestRemark8AtCmd-remark8List:"+remark8List.size());
bb.writeLog("OpenRequestRemark8AtCmd-atList:"+atList.size());
bb.writeLog("remark9count:"+remark9count);
if(remark9count > 0){
List<Map<String, String>> remark8List2 = new ArrayList<Map<String, String>>();
List<Map<String, String>> remark9List2 = new ArrayList<Map<String, String>>();
OpenRequestRemarkAtRunnable openRequestRemarkAtRunnable = new OpenRequestRemarkAtRunnable(requestid,userid+"",loginid,remark8List2,remark9List2,atList);
new Thread(openRequestRemarkAtRunnable).start();
}else{
bb.writeLog("OpenRequestRemark8AtCmd-remark8List:"+remark8List.size());
bb.writeLog("OpenRequestRemark8AtCmd-atList:"+atList.size());
OpenRequestRemarkAtRunnable openRequestRemarkAtRunnable = new OpenRequestRemarkAtRunnable(requestid,userid+"",loginid,remark8List,remark9List,atList);
new Thread(openRequestRemarkAtRunnable).start();
}
OpenRequestRemarkAtRunnable openRequestRemarkAtRunnable = new OpenRequestRemarkAtRunnable(requestid,userid+"",loginid,remark8List,remark9List,atList);
new Thread(openRequestRemarkAtRunnable).start();
}
}
}

@ -2,6 +2,7 @@ package weaver.interfaces.dito.robot;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.RequestBaseInfoUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.interfaces.dito.constant.Constants;
import com.customization.dito.sendtodo.HttpRequestUtil;
@ -9,15 +10,17 @@ import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.time.util.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.dito.comInfo.PropBean;
import java.net.URLEncoder;
import java.util.Map;
/***
*
*/
public class SendPortalRobotSubmitUtil {
private RequestBaseInfoUtil requestBaseInfoUtil = new RequestBaseInfoUtil();
public void sendRobotsubmit(String requestid,String nodeid){
BaseBean bb = new BaseBean();
bb.writeLog("SendPortalRobotSubmitUtil");
@ -49,7 +52,6 @@ public class SendPortalRobotSubmitUtil {
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
JSONObject requestObject = new JSONObject();
bb.writeLog("SendPortalRobotSubmitUtil--sendRobotSubmitByTodo");
String terminal = "1" ;
String taskType = "0";
@ -59,118 +61,91 @@ public class SendPortalRobotSubmitUtil {
try {
String userids = "" ;
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType" ;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
String urlPc = "[newtab]"+ bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String replace = bpm_app_workflowurl.replace("/bpm", "");
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
if(org.apache.commons.lang.StringUtils.isNotEmpty(mobileJumpUrl)){
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
bb.writeLog("sendRobotSubmitByTodo-urlDing", urlDing);
int count = 0 ;
String countSql=" select t2.userid \n" +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
bb.writeLog("sendRobotSubmitByTodo--countSql:"+countSql);
rs.executeQuery(countSql);
while (rs.next()){
count++;
}
// int count = 0 ;
// String countSql=" select t2.userid \n" +
// " from workflow_requestbase t1\n" +
// " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
// " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" +
// " and t2.islasttimes = 1\n" +
// " and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid ;
int count = requestBaseInfoUtil.getTodoCountByRequestid(requestid+"");
// bb.writeLog("sendRobotSubmitByTodo--countSql:"+countSql);
// rs.executeQuery(countSql);
// while (rs.next()){
// count++;
// }
bb.writeLog("sendRobotSubmitByTodo--count:"+count);
if(count >0){
String currentUserId= "1";
String requestname = "" ;
String workflowname = "" ;
String currentNodeId = "" ;
String currentNodeName = "" ;
String createrLoginid = "" ;
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.loginid\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" left join (select id,lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid from hrmresourcemanager ) 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("sendRobotSubmitByTodo--sql2:"+sql);
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
currentNodeId = Util.null2String(rs.getString("nodeid")) ;
currentNodeName = Util.null2String(rs.getString("nodeName")) ;
createrLoginid = Util.null2String(rs.getString("loginid"));
}
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");
requestObject.put("creator",createrLoginid);
requestObject.put("center",center);
JSONObject requestObject = new JSONObject();
requestObject.put("creator",createrLoginId);
requestObject.put("title",requestname);
requestObject.put("taskCode","weaver"+requestid);
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("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",currentNodeName);
requestObject.put("ticketType",workflowname);
JSONArray taskObjectList = new JSONArray();
sql = " select t2.userid,h1.loginid,h1.lastname,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
" left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
" left join workflow_nodebase d1 on d1.id = t2.nodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('5','7','11')) \n" +
" and t2.islasttimes = 1 \n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid ;
// String sql =" select t2.userid,h1.loginid,h1.lastname,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.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid ;
String sql = requestBaseInfoUtil.getTodoSql(requestid);
rs.executeQuery(sql);
while (rs.next()) {
//归档节点抄送
String creator = rs.getString("loginid");
String loginid = rs.getString("loginid");
String staffid = rs.getString("staffid");
String userid = rs.getString("userid");
userids += StringUtils.isEmpty(userids) ? userid : ","+userid ;
bb.writeLog("sendRobotSubmitByTodo:"+requestid+" creator:"+creator);
if ("sysadmin".equals(creator)) {
creator = "Admin";
}
JSONObject taskObject = new JSONObject();
taskObject.put("objectAction",objectAction);
taskObject.put("objectType", objectType);
taskObject.put("objectCode", creator);
taskObject.put("objectCode", loginid);
taskObject.put("objectId", staffid);
taskObject.put("operatorCode", creator);
taskObject.put("operatorCode", loginid);
taskObjectList.add(taskObject);
}
@ -184,10 +159,10 @@ public class SendPortalRobotSubmitUtil {
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,userids);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,"",zhjkbs,"");
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userids);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"");
}
}
}
@ -228,10 +203,6 @@ public class SendPortalRobotSubmitUtil {
String objectAction = "0" ;
String objectType = "0";
try {
String currentUserId= "1";
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 ;
@ -239,67 +210,46 @@ public class SendPortalRobotSubmitUtil {
String urlDing = replace+bpm_app_requesturl+requestid;
String urlApp = replace+bpm_app_requesturl+requestid;
if(org.apache.commons.lang.StringUtils.isNotEmpty(mobileJumpUrl)){
if(StringUtils.isNotEmpty(mobileJumpUrl)){
urlDing += "&returnUrl="+ URLEncoder.encode(mobileJumpUrl,"UTF-8");
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
}
bb.writeLog("sendRobotSubmitByToRead-urlDing"+ urlDing);
String requestname = "" ;
String workflowname = "" ;
String nodeId = "" ;
String nodeName = "" ;
String createrLoginid = "" ;
String sql =" select t1.requestname,t1.currentnodeid as nodeid,d1.nodename,t3.workflowname,h2.loginid\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" left join (select id,lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid from hrmresourcemanager ) 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("sendRobotSubmitByToRead--sql2:"+sql);
Map<String,String> baseMap = requestBaseInfoUtil.queryRequestBaseByRequestid(requestid);
rs.executeQuery(sql);
if (rs.next()){
requestname = Util.null2String(rs.getString("requestname")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
nodeId = Util.null2String(rs.getString("nodeid")) ;
nodeName = Util.null2String(rs.getString("nodeName")) ;
createrLoginid = Util.null2String(rs.getString("loginid"));
}
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");
bb.writeLog("sendRobotSubmitByToRead--nodeId:"+nodeId);
bb.writeLog("sendRobotSubmitByToRead--nodeName:"+nodeName);
JSONArray taskObjectList = new JSONArray();
sql = " select t2.userid,h1.loginid,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
" left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
" left join workflow_nodebase d1 on d1.id = t2.nodeid "+
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t2.isremark in ('8','9')\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.requestid = "+requestid +
" ";
// sql = " select t2.userid,h1.loginid,h1.email,t2.isremark,t1.requestid,t2.nodeid,d1.nodename,c1."+cus_staff+" as staffid "+
// " from workflow_requestbase t1\n" +
// " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
// " left join cus_fielddata c1 on c1.id = t2.userid and c1.scopeid= "+scopeid+" and c1.scope = '"+scope+"' "+
// " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
// " left join workflow_nodebase d1 on d1.id = t2.nodeid "+
// " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
// " and t2.isremark in ('8','9')\n" +
// " and t2.islasttimes = 1\n" +
// " and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
// " and t2.requestid = "+requestid +
// " ";
String sql = requestBaseInfoUtil.getRemark89Sql(requestid);
bb.writeLog("sendRobotSubmitByToRead--sql:"+sql);
rs.executeQuery(sql);
while (rs.next()) {
//归档节点抄送
String creator = rs.getString("loginid");
String loginid = rs.getString("loginid");
String staffid = rs.getString("staffid");
String userid = rs.getString("userid");
bb.writeLog("sendRobotSubmitByToRead:"+requestid+" creator:"+creator+" staffid:"+staffid);
if ("sysadmin".equals(creator)) {
creator = "Admin";
}
JSONObject taskObject = new JSONObject();
taskObject.put("creator", creator);
taskObject.put("creator", loginid);
taskObject.put("staffid", staffid);
taskObject.put("userid", userid);
taskObjectList.add(taskObject);
@ -322,24 +272,23 @@ public class SendPortalRobotSubmitUtil {
taskArray.add(taskObject);
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("creator",createrLoginid);
requestObject.put("center",center);
requestObject.put("title",requestname);
requestObject.put("taskCode", requestid+"_cs_"+userid);
requestObject.put("nodeId",nodeId);
requestObject.put("taskType",taskType);
requestObject.put("actionType",actionType);
requestObject.put("createDate",processTime);
requestObject.put("messageTitle",getShortMessageTitle(requestname));
requestObject.put("messageContent",requestname);
requestObject.put("terminal",terminal);
requestObject.put("urlPc",urlPc);
requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",workflowname);
requestObject.put("taskObjectList",taskArray);
String auth = username + ":" + passwd;
@ -350,10 +299,10 @@ public class SendPortalRobotSubmitUtil {
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,"",zhjkbs,userid);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,"",zhjkbs,userid);
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName,currentUserId,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,currentNodeId,currentNodeName,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid);
}
}
}
@ -415,7 +364,6 @@ public class SendPortalRobotSubmitUtil {
sendRobotSubmitByToRead(requestid,nodeid);
}
}

Loading…
Cancel
Save