no message

master
rengp 2 years ago
parent 62c4704870
commit 6c19458302

@ -52,7 +52,7 @@ public class SLController {
serviceXML = length + serviceXML; serviceXML = length + serviceXML;
serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8)); serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8));
// out.print("请求=="+ serviceXML); // out.print("请求=="+ serviceXML);
SocketClientUtil scketClient = new SocketClientUtil("14.1.76.116",10149); SocketClientUtil scketClient = new SocketClientUtil("14.1.71.90",10149);
String send = null; String send = null;
try { try {
send = scketClient.send(serviceXML); send = scketClient.send(serviceXML);

@ -0,0 +1,743 @@
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.conn.RecordSetTrans;
import weaver.file.FileUpload;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.meeting.MeetingUtil;
import weaver.systeminfo.SystemEnv;
import weaver.workflow.agent.AgentManager;
import weaver.workflow.msg.MsgPushUtil;
import weaver.workflow.msg.entity.MsgEntity;
import weaver.workflow.report.RequestDeleteLog;
import weaver.workflow.request.RequestAnnexUpload;
import weaver.workflow.request.RequestDeleteUtils;
import weaver.workflow.request.RequestOperationMsgManager;
import weaver.workflow.request.WFUrgerManager;
import weaver.workflow.workflow.*;
import weaver.workflow.workflow.RequestForceDrawBack;
import weaver.workflow.workflow.WFManager;
import weaver.workflow.workflow.WfForceDrawBack;
import weaver.workflow.workflow.WfForceOver;
import weaver.workflow.workflow.WfFunctionManageUtil;
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;
}
//判断是否为空,可能已分配空间有值为 "" (空串),也可能未分配空间没有值为 null
private boolean isEmpty(String str) {
if ("".equals(str) || str == null) {
return true;
} else {
return false;
}
}
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)) {
/*
TODO
//先查询workflowid在建模表中是否存在如果存在查询nodeid下
1. requestidsworkflowidnodeid
:
:
*/
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
String lcWorkflowid="";
String lcCurrentnodeid="";
//requestid,workflowid,currentnodeid
String query="select * from workflow_requestbase where requestid ="+requestid;
bb.writeLog("querysql-->"+query);
try {
rs.execute(query);
bb.writeLog("查询数据-->");
if (rs.next()){
lcWorkflowid = Util.null2String(rs.getString("workflowid"));
lcCurrentnodeid = Util.null2String(rs.getString("lastnodeid"));
}
}catch (Exception e){
e.printStackTrace();
}
bb.writeLog("lcWorkflowid-->"+lcWorkflowid);
bb.writeLog("lcCurrentnodeid-->"+lcCurrentnodeid);
if (!isEmpty(lcWorkflowid) && !isEmpty(lcCurrentnodeid)) {
bb.writeLog("查询出的workflowid和currentnodeid不为空");
int cnt = 0;
int touchnodeid = 0;
//查询配置表
String sczlc = "select COUNT(1) as cnt,touchnodeid,workflowid from uf_sczlc where workflowid=" + lcWorkflowid + " and nodeid=" + lcCurrentnodeid + " group by touchnodeid,workflowid";
bb.writeLog("sczlc-->" + sczlc);
try {
rs.execute(sczlc);
bb.writeLog("sczlc查询数据-->");
while (rs.next()) {
int workflowid1 = rs.getInt("workflowid");
if(workflowid==workflowid1) {
cnt = rs.getInt("cnt");
touchnodeid = rs.getInt("touchnodeid");
}
}
} catch (Exception e) {
e.printStackTrace();
}
bb.writeLog("workflowid-->" + workflowid);
bb.writeLog("touchnodeid-->" + touchnodeid);
bb.writeLog("cnt结果-->" + cnt);
if (cnt>0){
// select requestid,workflowid,currentnodeid from workflow_requestbase where mainrequestid=239239
// select COUNT(*) as cnt from workflow_requestbase where mainrequestid=239239
List<Map<String, String>> subList = new ArrayList<>();
// String subWorkflowSql="select * from Workflow_SubwfSet where mainWorkflowId="+lcWorkflowid+" and triggerNodeId="+lcCurrentnodeid;
String subworkflowsql1 = "select workflowid subWorkflowId from workflow_requestbase where requestid in (select subrequestid from workflow_subwfrequest where subrequestid in (select requestid from workflow_requestbase where mainrequestid="+requestid+" and triggernode = "+touchnodeid+"))";
//String subWorkflowSql="select subWorkflowId from Workflow_SubwfSet where mainWorkflowId="+lcWorkflowid+" and triggerNodeId="+touchnodeid;
bb.writeLog("subWorkflowSql-->"+subworkflowsql1);
try {
rs.executeQuery(subworkflowsql1);
bb.writeLog("查询数据子流程id-->");
while (rs.next()){
Map<String, String> subMap = new HashMap<String, String>();
String subWorkflowId = Util.null2String(rs.getString(1));
bb.writeLog("subWorkflowId-->"+subWorkflowId);
subMap.put("subWorkflowId",subWorkflowId);
subList.add(subMap);
}
bb.writeLog("查询数据subList-->"+subList);
}catch (Exception e){
e.printStackTrace();
}
if (subList.size()>0){
bb.writeLog("进入subList>0-->");
String subWorkid="";
for (int s = 0; s < subList.size(); s++) {
String subWorkflowId = subList.get(s).get("subWorkflowId").toString();
if(s+1 == subList.size()){
subWorkid = subWorkid + subWorkflowId;
}else{
subWorkid = subWorkid + subWorkflowId+",";
}
}
bb.writeLog("subWorkid-->"+subWorkid);
List<Map<String, String>> zlcList = new ArrayList<>();
String zlc=" select * from workflow_requestbase where mainrequestid="+requestid+" and workflowid in ("+subWorkid+")";
bb.writeLog("zlc-->"+zlc);
try {
rs.execute(zlc);
bb.writeLog("zlc查询数据-->");
while (rs.next()){
Map<String, String> zlcMap = new HashMap<String, String>();
String zlcRequestid = Util.null2String(rs.getString("requestid"));
String zlcWorkflowid = Util.null2String(rs.getString("workflowid"));
String zlcCurrentnodeid = Util.null2String(rs.getString("currentnodeid"));
zlcMap.put("zlcRequestid",zlcRequestid);
zlcMap.put("zlcWorkflowid",zlcWorkflowid);
zlcMap.put("zlcCurrentnodeid",zlcCurrentnodeid);
zlcList.add(zlcMap);
}
bb.writeLog("zlc查询数据zlcList-->"+zlcList);
}catch (Exception e){
e.printStackTrace();
}
if (zlcList.size()>0){
bb.writeLog("进入zlcList.size()>0-->");
String idResult="";
for (int s = 0; s < zlcList.size(); s++) {
String id = zlcList.get(s).get("zlcRequestid").toString();
if(s+1 == zlcList.size()){
idResult = idResult + id;
}else{
idResult = idResult + id+",";
}
}
bb.writeLog("idResult-->"+idResult);
ArrayList<Map> ResultList = new ArrayList<>();
String selectbaseSql="select * from workflow_requestbase where requestid in ("+idResult+")";
try {
rs.execute(selectbaseSql);
while (rs.next()){
HashMap<String, String> map = new HashMap<>();
map.put("requestid",Util.null2String(rs.getString("requestid")));
map.put("workflowid",Util.null2String(rs.getString("workflowid")));
ResultList.add(map);
}
}catch (Exception e){
e.printStackTrace();
}
bb.writeLog("ResultList-->"+ResultList);
for (int i = 0; i < ResultList.size(); i++) {
bb.writeLog("进入删除子流程方法-->["+i+"]");
boolean requestid1 = deleteWF(ResultList.get(i).get("requestid").toString(), user, "");
bb.writeLog("删除返回值-->"+requestid1);
}
// if (zlcList.size()>0){
// bb.writeLog("进入zlcList.size()>0-->");
// String idResult="";
// for (int s = 0; s < zlcList.size(); s++) {
// String id = zlcList.get(s).get("zlcRequestid").toString();
// if(s+1 == zlcList.size()){
// idResult = idResult + id;
// }else{
// idResult = idResult + id+",";
// }
// }
// bb.writeLog("idResult-->"+idResult);
//
/*if (!isEmpty(idResult) && !isEmpty(subWorkid)){
List<Map<String, String>> selectbaseList = new ArrayList<>();
String selectbaseSql="select * from workflow_requestbase where requestid in ("+idResult+") and workflowid in ("+subWorkid+")";
bb.writeLog("selectbaseSql-->"+selectbaseSql);
try {
rs.execute(selectbaseSql);
bb.writeLog("查询待删除的子流程数据base-->");
while (rs.next()){
Map<String, String> selectbaseMap = new HashMap<String, String>();
selectbaseMap.put("requestid",Util.null2String(rs.getString("requestid")));
selectbaseMap.put("workflowid",Util.null2String(rs.getString("workflowid")));
selectbaseMap.put("lastnodeid",Util.null2String(rs.getString("lastnodeid")));
selectbaseMap.put("lastnodetype",Util.null2String(rs.getString("lastnodetype")));
selectbaseMap.put("currentnodeid",Util.null2String(rs.getString("currentnodeid")));
selectbaseMap.put("currentnodetype",Util.null2String(rs.getString("currentnodetype")));
selectbaseMap.put("status",Util.null2String(rs.getString("status")));
selectbaseMap.put("passedgroups",Util.null2String(rs.getString("passedgroups")));
selectbaseMap.put("totalgroups",Util.null2String(rs.getString("totalgroups")));
selectbaseMap.put("requestname",Util.null2String(rs.getString("requestname")));
selectbaseMap.put("creater",Util.null2String(rs.getString("creater")));
selectbaseMap.put("createdate",Util.null2String(rs.getString("createdate")));
selectbaseMap.put("createtime",Util.null2String(rs.getString("createtime")));
selectbaseMap.put("lastoperator",Util.null2String(rs.getString("lastoperator")));
selectbaseMap.put("lastoperatedate",Util.null2String(rs.getString("lastoperatedate")));
selectbaseMap.put("lastoperatetime",Util.null2String(rs.getString("lastoperatetime")));
selectbaseMap.put("deleted",Util.null2String(rs.getString("deleted")));
selectbaseMap.put("creatertype",Util.null2String(rs.getString("creatertype")));
selectbaseMap.put("lastoperatortype",Util.null2String(rs.getString("lastoperatortype")));
selectbaseMap.put("nodepasstime",Util.null2String(rs.getString("nodepasstime")));
selectbaseMap.put("nodelefttime",Util.null2String(rs.getString("nodelefttime")));
selectbaseMap.put("docids",Util.null2String(rs.getString("docids")));
selectbaseMap.put("crmids",Util.null2String(rs.getString("crmids")));
selectbaseMap.put("hrmids",Util.null2String(rs.getString("hrmids")));
selectbaseMap.put("prjids",Util.null2String(rs.getString("prjids")));
selectbaseMap.put("cptids",Util.null2String(rs.getString("cptids")));
selectbaseMap.put("requestlevel",Util.null2String(rs.getString("requestlevel")));
selectbaseMap.put("requestmark",Util.null2String(rs.getString("requestmark")));
selectbaseMap.put("messageType",Util.null2String(rs.getString("messageType")));
selectbaseMap.put("mainRequestId",Util.null2String(rs.getString("mainRequestId")));
selectbaseMap.put("currentstatus",Util.null2String(rs.getString("currentstatus")));
selectbaseMap.put("laststatus",Util.null2String(rs.getString("laststatus")));
selectbaseMap.put("ismultiprint",Util.null2String(rs.getString("ismultiprint")));
selectbaseMap.put("chatsType",Util.null2String(rs.getString("chatsType")));
selectbaseMap.put("ecology_pinyin_search",Util.null2String(rs.getString("ecology_pinyin_search")));
selectbaseMap.put("requestnamenew",Util.null2String(rs.getString("requestnamenew")));
selectbaseMap.put("formsignaturemd5",Util.null2String(rs.getString("formsignaturemd5")));
selectbaseMap.put("dataaggregated",Util.null2String(rs.getString("dataaggregated")));
selectbaseMap.put("secLevel",Util.null2String(rs.getString("secLevel")));
selectbaseMap.put("secdocid",Util.null2String(rs.getString("secdocid")));
selectbaseMap.put("remindTypes",Util.null2String(rs.getString("remindTypes")));
selectbaseMap.put("lastFeedBackDate",Util.null2String(rs.getString("lastFeedBackDate")));
selectbaseMap.put("lastFeedBackTime",Util.null2String(rs.getString("lastFeedBackTime")));
selectbaseMap.put("lastfeedbackoperator",Util.null2String(rs.getString("lastfeedbackoperator")));
selectbaseMap.put("requestnamehtmlnew",Util.null2String(rs.getString("requestnamehtmlnew")));
selectbaseMap.put("secvalidity",Util.null2String(rs.getString("secvalidity")));
selectbaseList.add(selectbaseMap);
}
bb.writeLog("查询数据selectbaseList-->"+selectbaseList);
}catch (Exception e){
e.printStackTrace();
}
for (int i = 0; i < selectbaseList.size(); i++) {
String baseInsert="insert into deleteworkflow_requestbase (requestid,workflowid,lastnodeid,lastnodetype,currentnodeid,currentnodetype,status,passedgroups,totalgroups,requestname,creater,createdate,createtime,lastoperator,lastoperatedate,lastoperatetime,deleted,creatertype,lastoperatortype,nodepasstime,nodelefttime,docids,crmids,hrmids,prjids,cptids,requestlevel,requestmark,messageType,mainRequestId,currentstatus,laststatus,ismultiprint,chatsType,ecology_pinyin_search,requestnamenew,formsignaturemd5,dataaggregated,secLevel,secdocid,remindTypes,lastFeedBackDate,lastFeedBackTime,lastfeedbackoperator,requestnamehtmlnew,secvalidity) ";
String baseValues="values ('"
+selectbaseList.get(i).get("requestid")+ "'," +
"'"+selectbaseList.get(i).get("workflowid")+"',"+
"'"+selectbaseList.get(i).get("lastnodeid")+"',"+
"'"+selectbaseList.get(i).get("lastnodetype")+"',"+
"'"+selectbaseList.get(i).get("currentnodeid")+"',"+
"'"+selectbaseList.get(i).get("currentnodetype")+"',"+
"'"+selectbaseList.get(i).get("status")+"',"+
"'"+selectbaseList.get(i).get("passedgroups")+"',"+
"'"+selectbaseList.get(i).get("totalgroups")+"',"+
"'"+selectbaseList.get(i).get("requestname")+"',"+
"'"+selectbaseList.get(i).get("creater")+"',"+
"'"+selectbaseList.get(i).get("createdate")+"',"+
"'"+selectbaseList.get(i).get("createtime")+"',"+
"'"+selectbaseList.get(i).get("lastoperator")+"',"+
"'"+selectbaseList.get(i).get("lastoperatedate")+"',"+
"'"+selectbaseList.get(i).get("lastoperatetime")+"',"+
"'"+selectbaseList.get(i).get("deleted")+"',"+
"'"+selectbaseList.get(i).get("creatertype")+"',"+
"'"+selectbaseList.get(i).get("lastoperatortype")+"',"+
"'"+selectbaseList.get(i).get("nodepasstime")+"',"+
"'"+selectbaseList.get(i).get("nodelefttime")+"',"+
"'"+selectbaseList.get(i).get("docids")+"',"+
"'"+selectbaseList.get(i).get("crmids")+"',"+
"'"+selectbaseList.get(i).get("hrmids")+"',"+
"'"+selectbaseList.get(i).get("prjids")+"',"+
"'"+selectbaseList.get(i).get("cptids")+"',"+
"'"+selectbaseList.get(i).get("requestlevel")+"',"+
"'"+selectbaseList.get(i).get("requestmark")+"',"+
"'"+selectbaseList.get(i).get("messageType")+"',"+
"'"+selectbaseList.get(i).get("mainRequestId")+"',"+
"'"+selectbaseList.get(i).get("currentstatus")+"',"+
"'"+selectbaseList.get(i).get("laststatus")+"',"+
"'"+selectbaseList.get(i).get("ismultiprint")+"',"+
"'"+selectbaseList.get(i).get("chatsType")+"',"+
"'"+selectbaseList.get(i).get("ecology_pinyin_search")+"',"+
"'"+selectbaseList.get(i).get("requestnamenew")+"',"+
"'"+selectbaseList.get(i).get("formsignaturemd5")+"',"+
"'"+selectbaseList.get(i).get("dataaggregated")+"',"+
"'"+selectbaseList.get(i).get("secLevel")+"',"+
"'"+selectbaseList.get(i).get("secdocid")+"',"+
"'"+selectbaseList.get(i).get("remindTypes")+"',"+
"'"+selectbaseList.get(i).get("lastFeedBackDate")+"',"+
"'"+selectbaseList.get(i).get("lastFeedBackTime")+"',"+
"'"+selectbaseList.get(i).get("lastfeedbackoperator")+"',"+
"'"+selectbaseList.get(i).get("requestnamehtmlnew")+"',"+
"'"+selectbaseList.get(i).get("secvalidity")+"')";
String baseInsertSql=baseInsert+baseValues;
boolean execute = rs.execute(baseInsertSql);
bb.writeLog("baseInsertSql-->"+baseInsertSql);
bb.writeLog("baseInsert-->"+execute);
}
List<Map<String, String>> selectlogList = new ArrayList<>();
String selectlogSql="select * from workflow_requestlog where requestid in ("+idResult+") and workflowid in ("+subWorkid+")";
bb.writeLog("selectlogSql-->"+selectlogSql);
try {
rs.execute(selectlogSql);
bb.writeLog("查询待删除的子流程数据log-->");
while (rs.next()){
Map<String, String> selectlogMap = new HashMap<String, String>();
selectlogMap.put("requestid",Util.null2String(rs.getString("requestid")));
selectlogMap.put("workflowid",Util.null2String(rs.getString("workflowid")));
selectlogMap.put("nodeid",Util.null2String(rs.getString("nodeid")));
selectlogMap.put("logtype",Util.null2String(rs.getString("logtype")));
selectlogMap.put("operatedate",Util.null2String(rs.getString("operatedate")));
selectlogMap.put("operatetime",Util.null2String(rs.getString("operatetime")));
selectlogMap.put("operator",Util.null2String(rs.getString("operator")));
selectlogMap.put("remark",Util.null2String(rs.getString("remark")));
selectlogMap.put("clientip",Util.null2String(rs.getString("clientip")));
selectlogMap.put("operatortype",Util.null2String(rs.getString("operatortype")));
selectlogMap.put("destnodeid",Util.null2String(rs.getString("destnodeid")));
selectlogMap.put("receivedPersons",Util.null2String(rs.getString("receivedPersons")));
selectlogMap.put("showorder",Util.null2String(rs.getString("showorder")));
selectlogMap.put("agentorbyagentid",Util.null2String(rs.getString("agentorbyagentid")));
selectlogMap.put("agenttype",Util.null2String(rs.getString("agenttype")));
selectlogMap.put("annexdocids",Util.null2String(rs.getString("annexdocids")));
selectlogMap.put("requestLogId",Util.null2String(rs.getString("requestLogId")));
selectlogMap.put("operatorDept",Util.null2String(rs.getString("operatorDept")));
selectlogMap.put("signdocids",Util.null2String(rs.getString("signdocids")));
selectlogMap.put("signworkflowids",Util.null2String(rs.getString("signworkflowids")));
selectlogMap.put("isMobile",Util.null2String(rs.getString("isMobile")));
selectlogMap.put("HandWrittenSign",Util.null2String(rs.getString("HandWrittenSign")));
selectlogMap.put("SpeechAttachment",Util.null2String(rs.getString("SpeechAttachment")));
selectlogMap.put("receivedpersonids",Util.null2String(rs.getString("receivedpersonids")));
selectlogMap.put("remarklocation",Util.null2String(rs.getString("remarklocation")));
selectlogMap.put("isSubmitDirect",Util.null2String(rs.getString("isSubmitDirect")));
selectlogMap.put("remarkquote",Util.null2String(rs.getString("remarkquote")));
selectlogMap.put("fulltextannotation",Util.null2String(rs.getString("fulltextannotation")));
selectlogMap.put("speechattachmente9",Util.null2String(rs.getString("speechattachmente9")));
selectlogMap.put("uuid",Util.null2String(rs.getString("uuid")));
selectlogMap.put("operatorSub",Util.null2String(rs.getString("operatorSub")));
selectlogMap.put("operatorJob",Util.null2String(rs.getString("operatorJob")));
selectlogList.add(selectlogMap);
}
bb.writeLog("查询数据selectlogList-->"+selectlogList);
}catch (Exception e){
e.printStackTrace();
}
for (int i = 0; i < selectlogList.size(); i++) {
String logInsert="insert into deleteworkflow_requestlog (requestid,workflowid,nodeid,logtype,operatedate,operatetime,operator,remark,clientip,operatortype,destnodeid,receivedPersons,showorder,agentorbyagentid,agenttype,annexdocids,requestLogId,operatorDept,signdocids,signworkflowids,isMobile,HandWrittenSign,SpeechAttachment,receivedpersonids,remarklocation,isSubmitDirect,remarkquote,fulltextannotation,speechattachmente9,uuid,operatorSub,operatorJob) ";
String logValues="values ('"
+ selectlogList.get(i).get("requestid")+ "'," +
"'"+selectlogList.get(i).get("workflowid")+"',"+
"'"+selectlogList.get(i).get("nodeid")+"',"+
"'"+selectlogList.get(i).get("logtype")+"',"+
"'"+selectlogList.get(i).get("operatedate")+"',"+
"'"+selectlogList.get(i).get("operatetime")+"',"+
"'"+selectlogList.get(i).get("operator")+"',"+
"'"+selectlogList.get(i).get("remark")+"',"+
"'"+selectlogList.get(i).get("clientip")+"',"+
"'"+selectlogList.get(i).get("operatortype")+"',"+
"'"+selectlogList.get(i).get("destnodeid")+"',"+
"'"+selectlogList.get(i).get("receivedPersons")+"',"+
"'"+selectlogList.get(i).get("showorder")+"',"+
"'"+selectlogList.get(i).get("agentorbyagentid")+"',"+
"'"+selectlogList.get(i).get("agenttype")+"',"+
"'"+selectlogList.get(i).get("annexdocids")+"',"+
"'"+selectlogList.get(i).get("requestLogId")+"',"+
"'"+selectlogList.get(i).get("operatorDept")+"',"+
"'"+selectlogList.get(i).get("signdocids")+"',"+
"'"+selectlogList.get(i).get("signworkflowids")+"',"+
"'"+selectlogList.get(i).get("isMobile")+"',"+
"'"+selectlogList.get(i).get("HandWrittenSign")+"',"+
"'"+selectlogList.get(i).get("SpeechAttachment")+"',"+
"'"+selectlogList.get(i).get("receivedpersonids")+"',"+
"'"+selectlogList.get(i).get("remarklocation")+"',"+
"'"+selectlogList.get(i).get("isSubmitDirect")+"',"+
"'"+selectlogList.get(i).get("remarkquote")+"',"+
"'"+selectlogList.get(i).get("fulltextannotation")+"',"+
"'"+selectlogList.get(i).get("speechattachmente9")+"',"+
"'"+selectlogList.get(i).get("uuid")+"',"+
"'"+selectlogList.get(i).get("operatorSub")+"',"+
"'"+selectlogList.get(i).get("operatorJob")+"')";
String logInsertSql=logInsert+logValues;
boolean execute = rs.execute(logInsertSql);
bb.writeLog("logInsertSql-->"+logInsertSql);
bb.writeLog("logInsert-->"+execute);
}
String baseSql="delete from workflow_requestbase where requestid in ("+idResult+") and workflowid in ("+subWorkid+")";
String logSql="delete from workflow_requestlog where requestid in ("+idResult+") and workflowid in ("+subWorkid+")";
bb.writeLog("进入删除子流程-->");
bb.writeLog("baseSql-->"+baseSql);
bb.writeLog("logSql-->"+logSql);
rs.execute(baseSql);
rs.execute(logSql);
}*/
//子流程数量
int size= ResultList.size();
bb.writeLog("子流程数量-->"+size);
apidatas.put("zlcCount",size);
bb.writeLog("子流程添加成功");
}
}
}
}
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);
}else {
apidatas.put("success",false);
apidatas.put("msg",SystemEnv.getHtmlLabelName(18567,user.getLanguage()));
}
}
//自动取消 流程关注
new RequestAttentionBiz().cancelAttention(requestid,flag);
return apidatas;
}
/**
*
* @param requestid
*/
public static boolean deleteWF(String requestid, User user, String from){
RequestDeleteUtils rdu = new RequestDeleteUtils();
RecordSetTrans trst = new RecordSetTrans();
trst.setAutoCommit(false);
RequestDeleteLog log = rdu.initRequestDeleteLog(user, from, String.valueOf(requestid));
RequestDeleteUtils rdu1 = new RequestDeleteUtils(Util.getIntValue(requestid),trst,log);
try {
rdu1.executeDeleteRequest();
trst.commit();
} catch (Exception e) {
new BaseBean().writeLog(e);
trst.rollback();
return false;
}
return true;
}
@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;
}
}
Loading…
Cancel
Save