记录代码修改1116

main
wcf 2 years ago
parent f1f1e589aa
commit eb7abf86da

@ -0,0 +1,231 @@
package com.customization.dito.sendtodo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.time.util.DateUtil;
import org.apache.commons.lang.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.resource.ResourceComInfo;
import weaver.interfaces.dito.comInfo.PropBean;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
/**
* @Title
* @Author wangchaofa
* @CreateDate 2023/11/15
* @Version 1.0
* @Description
*/
public class SendPortalAgentCmd {
/**
*
* @param agenterid
* @param beagenterid
* @param workflowids id
* @param user
*/
public void DealPortalTodoAndDone(int agenterid, int beagenterid, String workflowids, User user){
RecordSet rs = new RecordSet();
RecordSet rs1 = new RecordSet();
JSONArray taskObjectList = new JSONArray();
String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
JSONObject taskObject = new JSONObject();
rs.writeLog("==================== SendPortalAgentCmd DealPortalTodoAndDone ===================");
rs.writeLog("==================== SendPortalAgentCmd DealPortalTodoAndDone agenterid ==================="+ agenterid);
rs.writeLog("==================== SendPortalAgentCmd DealPortalTodoAndDone beagenterid ==================="+ beagenterid);
try {
taskObject.put("objectAction", "0");
taskObject.put("objectType", "0");
taskObject.put("objectCode", new ResourceComInfo().getWorkcode(String.valueOf(agenterid)));
taskObject.put("objectId", getStaffId(agenterid));
taskObject.put("operatorCode", new ResourceComInfo().getWorkcode(String.valueOf(agenterid)));
taskObjectList.add(taskObject);
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
SendMailUtil sendMailUtil = new SendMailUtil();
String scopeid = "-1";
String scope = "HrmCustomFieldByInfoType";
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
String portal_todourl = PropBean.getUfPropValue("portal_todourl");
String username = PropBean.getUfPropValue("username");
String passwd = PropBean.getUfPropValue("passwd");
String center = PropBean.getUfPropValue("center");
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
String sql = " select distinct t1.requestid,t1.requestname,t1.createdate,h1.lastname as creatorname,t2.receivedate,t2.receivetime " +
" from workflow_base t " +
" left join workflow_requestbase t1 on t.id=t1.workflowid " +
" left join workflow_currentoperator t2 on t1.requestid = t2.requestid " +
" left join hrmresource h1 on h1.id = t1.creater "+
" where t2.usertype=0 and t2.userid in (" + beagenterid +") and t.id in (" + workflowids +") "+
" and ((t2.isremark =0 and (t2.takisremark is null or t2.takisremark ='0')) or t2.isremark in('1','5','9','7','8','9','11') ) " +
" and t2.islasttimes=1 " +
" and (t.isvalid=3 or t.isvalid=1) ";
rs.writeLog("SendPortalAgentCmd DealPortalTodoAndDone -- sql:" + sql);
String zhjkbs = "com.engine.workflow.cmd.agent.SaveAgentDetailCmd.DealPortalTodoAndDone";
String actionType = "1";
String terminal = "1";
String taskType = "0";
rs1.executeQuery(sql);
while (rs1.next()) {
String requestid = Util.null2String(rs1.getString("requestid"));
String workflowname = "";
String nodeId = "";
String nodeName = "";
JSONObject requestObject = new JSONObject();
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 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;
rs.writeLog("SendPortalAgentCmd DealPortalTodoAndDone -- sql:" + sql);
rs.executeQuery(sql);
if (rs.next()) {
requestname = Util.null2String(rs.getString("requestname"));
workflowname = Util.null2String(rs.getString("workflowname"));
nodeId = Util.null2String(rs.getString("nodeid") + user.getUID());
nodeName = Util.null2String(rs.getString("nodeName"));
lastname = Util.null2String(rs.getString("lastname"));
loginid = Util.null2String(rs.getString("loginid"));
}
requestObject.put("center", center);
requestObject.put("title", requestname);
requestObject.put("creator", loginid);
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);
JSONObject taskObject1 = new JSONObject();
taskObject1.put("objectAction", "1");
taskObject1.put("objectType", "0");
taskObject1.put("objectCode", new ResourceComInfo().getWorkcode(String.valueOf(beagenterid)));
taskObject1.put("objectId", getStaffId(beagenterid));
taskObject1.put("operatorCode", new ResourceComInfo().getWorkcode(String.valueOf(beagenterid)));
taskObjectList.add(taskObject1);
if (taskObjectList.size() > 0) {
requestObject.put("taskObjectList", taskObjectList);
} else {
requestObject.put("actionType", "3");
}
String auth = username + ":" + passwd;
rs.writeLog("================== SendPortalAgentCmd DealPortalTodoAndDone ======================== "+requestObject.toJSONString());
msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth);
if (!"".equals(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
rs.writeLog("AddAgentSaveCmd emailArray:" + emailArray);
if (StringUtils.isNotEmpty(emailArray)) {
Map<String, String> templateMap = getEmailTemplate(requestname, lastname, processTime);
String notificationSubject = templateMap.get("notificationSubject");
String notificationContent = templateMap.get("notificationContent");
sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(beagenterid), requestObject.toJSONString(), resultCode, "",zhjkbs, String.valueOf(agenterid));
} else {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(beagenterid), requestObject.toJSONString(), resultCode, resultmsg ,zhjkbs, String.valueOf(agenterid));
}
}
}
}
}catch (Exception e){
e.printStackTrace();
rs.writeLog(e);
}
}
public String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "...";
}
return messageTitle;
}
/***
*
* @param requestname
* @param operator
* @param operatorTime
* @return
*/
public Map<String,String> getEmailTemplate(String requestname,String operator,String operatorTime){
Map<String,String> dataMap = new HashMap<String,String>();
String notificationSubject = "You have a new To-Read - <"+requestname+"> ";
String notificationContent = operator + " created this task on "+operatorTime+"\n" +
" Please handle it in time.";
dataMap.put("notificationSubject",notificationSubject);
dataMap.put("notificationContent",notificationContent);
return dataMap;
}
public int getStaffId(int userid){
int result = -1;
String cus_staff = PropBean.getUfPropValue("cus_staff") ;
RecordSet rs = new RecordSet();
rs.executeQuery("select "+ cus_staff + " from cus_fielddata where scopeid=-1 and scope = 'HrmCustomFieldByInfoType' and id=?",userid);
rs.next();
result = Util.getIntValue(rs.getString(cus_staff));
return result;
}
}

@ -174,7 +174,7 @@ public class SendPortalAtAddTodoCmd {
if (msgObject.containsKey("resultCode")) {
String resultCode = msgObject.getString("resultCode");
if ("0".equals(resultCode)) {
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName, (String) todoMap.get("id"),requestObject2.toJSONString(),resultCode,"",zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName, "",requestObject2.toJSONString(),resultCode,"",zhjkbs,(String) todoMap.get("id"));
sendPortalErrorUtil.saveAtRyjb(requestid,nodeId,(String) todoMap.get("id"));
}else if ("TODO-FAIL-002".equals(resultCode)){
//The task does not exist.任务不存在,则新增
@ -186,7 +186,7 @@ public class SendPortalAtAddTodoCmd {
}else{
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName, (String) todoMap.get("id"),requestObject2.toJSONString(),resultCode,resultmsg,zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeId,nodeName, "",requestObject2.toJSONString(),resultCode,resultmsg,zhjkbs,(String) todoMap.get("id"));
}
}
@ -329,7 +329,7 @@ public class SendPortalAtAddTodoCmd {
resultCode = msgObject.getString("resultCode");
if(!"0".equals(resultCode)){
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodename,"",requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,userid);
}
}
}

@ -200,11 +200,11 @@ public class SendPortalForwardCmd {
sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, userids, requestObject.toJSONString(), resultCode, "", zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(user.getUID()), requestObject.toJSONString(), resultCode, "", zhjkbs,userids);
} else {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, userids, requestObject.toJSONString(), resultCode, resultmsg, zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(user.getUID()), requestObject.toJSONString(), resultCode, resultmsg, zhjkbs,userids);
}
}
}
@ -374,11 +374,11 @@ public class SendPortalForwardCmd {
sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, userids, requestObject.toJSONString(), resultCode, "",zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(user.getUID()), requestObject.toJSONString(), resultCode, "",zhjkbs,userids);
} else {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, userids, requestObject.toJSONString(), resultCode, resultmsg ,zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(user.getUID()), requestObject.toJSONString(), resultCode, resultmsg ,zhjkbs,userids);
}
}
}
@ -483,7 +483,7 @@ public class SendPortalForwardCmd {
String resultCode = msgObject.getString("resultCode");
if (!"0".equals(resultCode)) {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, user.getUID() + "", nodeName, user.getUID() + "", jsonObject.toJSONString(), resultCode, resultmsg, zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, user.getUID() + "", nodeName, user.getUID() + "", jsonObject.toJSONString(), resultCode, resultmsg, zhjkbs,"");
}
}
}

@ -87,7 +87,7 @@ public class AtRequestRemarkCmd extends AbstractCommonCommand<Map<String,Object>
JSONObject requestObject = new JSONObject();
try {
String workflowid = "";
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 + "'";
rs.executeQuery(sql);
@ -111,7 +111,7 @@ public class AtRequestRemarkCmd extends AbstractCommonCommand<Map<String,Object>
String nodeId = "";
String nodeName = "";
sql = " select t1.requestname,t3.workflowname,t1.currentnodeid as nodeid,d1.nodename\n" +
sql = " select t1.workflowid,t1.requestname,t3.workflowname,t1.currentnodeid as nodeid,d1.nodename\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
@ -120,6 +120,7 @@ public class AtRequestRemarkCmd extends AbstractCommonCommand<Map<String,Object>
rs.execute(sql);
if (rs.next()) {
workflowid = Util.null2String(rs.getString("workflowid")) ;
workflowname = Util.null2String(rs.getString("workflowname")) ;
requestname = Util.null2String(rs.getString("requestname")) ;
nodeId = Util.null2String(rs.getString("nodeid") + user.getUID());
@ -172,38 +173,41 @@ public class AtRequestRemarkCmd extends AbstractCommonCommand<Map<String,Object>
resultCode = msgObject.getString("resultCode");
if(!"0".equals(resultCode)){
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg,zhjkbs,"");
}
}
}
// 增加已办
requestObject.put("center", center);
requestObject.put("taskCode", "weaver" + requestid);
requestObject.put("nodeId", nodeId);
requestObject.put("ticketType", workflowname);
requestObject.put("title", requestname);
requestObject.put("creator", workcode);
requestObject.put("processStaff", workcode);
requestObject.put("processTime", processTime);
requestObject.put("isRecall", "1");
requestObject.put("actionType", "0");
requestObject.put("urlPC", urlPc);
requestObject.put("urlApp", urlApp);
requestObject.put("urlDing", urlDing);
bb.writeLog("delTodoAddDoneSendPortal done requestObject:" + requestObject.toJSONString());
msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth);
bb.writeLog("delTodoAddDoneSendPortal done msgdata:" + msgdata);
if (StringUtils.isNotEmpty(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
bb.writeLog("SendPortalWithAddDoneCmd--delTodoAddDoneSendPortal--adddone--msgObject:" + msgObject.toJSONString());
//{"resultCode":"1","resultMsg":"No Result"}
if (msgObject.containsKey("resultCode")) {
resultCode = msgObject.getString("resultCode");
if (!"0".equals(resultCode)) {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeid, nodeName, user.getUID() + "", requestObject.toJSONString(), resultCode, resultmsg, zhjkbs);
boolean flag = checkHasDoneData(requestid,workflowid,userid,nodeid);
if(!flag){
// 增加已办
requestObject.put("center", center);
requestObject.put("taskCode", "weaver" + requestid);
requestObject.put("nodeId", nodeId);
requestObject.put("ticketType", workflowname);
requestObject.put("title", requestname);
requestObject.put("creator", workcode);
requestObject.put("processStaff", workcode);
requestObject.put("processTime", processTime);
requestObject.put("isRecall", "1");
requestObject.put("actionType", "0");
requestObject.put("urlPC", urlPc);
requestObject.put("urlApp", urlApp);
requestObject.put("urlDing", urlDing);
bb.writeLog("delTodoAddDoneSendPortal done requestObject:" + requestObject.toJSONString());
msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth);
bb.writeLog("delTodoAddDoneSendPortal done msgdata:" + msgdata);
if (StringUtils.isNotEmpty(msgdata)) {
JSONObject msgObject = JSONObject.parseObject(msgdata);
bb.writeLog("SendPortalWithAddDoneCmd--delTodoAddDoneSendPortal--adddone--msgObject:" + msgObject.toJSONString());
//{"resultCode":"1","resultMsg":"No Result"}
if (msgObject.containsKey("resultCode")) {
resultCode = msgObject.getString("resultCode");
if (!"0".equals(resultCode)) {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeid, nodeName, user.getUID() + "", requestObject.toJSONString(), resultCode, resultmsg, zhjkbs,"");
}
}
}
}
@ -229,5 +233,28 @@ public class AtRequestRemarkCmd extends AbstractCommonCommand<Map<String,Object>
return name;
}
private boolean checkHasDoneData(String requestid,String workflowid,String userid,String nodeid){
boolean flag = false;
RecordSet rs = new RecordSet();
String sql = "select distinct t1.requestid,t1.requestname,t1.createdate,t2.operatedate,t2.operatetime,t2.usertype,t3.id " +
" from workflow_requestbase t1,workflow_currentoperator t2,workflow_base t3 " +
" where t1.requestid=t2.requestid and t1.workflowid=t3.id " +
" and t3.isvalid in ('1','3') " +
" and t1.requestid = "+ requestid +
" and t3.id in ("+ workflowid +") " +
" and t2.userid in ("+ userid +") " +
" and t2.nodeid = "+ nodeid +
" and ifnull(t1.currentstatus,0) !=1 " +
" and t2.usertype = 0 " +
" and t2.isremark != '0' " +
" and islasttimes=1 " +
" ORDER BY t2.operatedate desc,t2.operatetime desc";
rs.executeQuery(sql);
if(rs.next()){
flag = true;
}
return flag;
}
}

@ -3,7 +3,6 @@ package com.engine.dito.reqremark.cmd;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.customization.dito.sendtodo.HttpRequestUtil;
import com.customization.dito.sendtodo.SendMailUtil;
import com.customization.dito.sendtodo.SendPortalErrorUtil;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
@ -16,13 +15,10 @@ import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.job.WorkflowAuthModelingUtil;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequestRemarkCmd extends AbstractCommonCommand<Map<String,Object>> {
@Override

@ -93,6 +93,7 @@ public class AddAgentSaveCmd extends AbstractCommonCommand<Map<String,Object>>{
*/
public void DealPortalTodoAndDone(int agenterid, int beagenterid, String workflowids){
RecordSet rs = new RecordSet();
RecordSet rs1 = new RecordSet();
JSONArray taskObjectList = new JSONArray();
String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
@ -140,9 +141,9 @@ public class AddAgentSaveCmd extends AbstractCommonCommand<Map<String,Object>>{
String actionType = "1";
String terminal = "1";
String taskType = "0";
rs.executeQuery(sql);
while (rs.next()) {
String requestid = Util.null2String(rs.getString("requestid"));
rs1.executeQuery(sql);
while (rs1.next()) {
String requestid = Util.null2String(rs1.getString("requestid"));
String workflowname = "";
String nodeId = "";
@ -234,11 +235,11 @@ public class AddAgentSaveCmd extends AbstractCommonCommand<Map<String,Object>>{
sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, userids, requestObject.toJSONString(), resultCode, "",zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(beagenterid), requestObject.toJSONString(), resultCode, "",zhjkbs,String.valueOf(agenterid));
} else {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, userids, requestObject.toJSONString(), resultCode, resultmsg ,zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(beagenterid), requestObject.toJSONString(), resultCode, resultmsg ,zhjkbs,String.valueOf(agenterid));
}
}
}

@ -0,0 +1,160 @@
package com.engine.workflow.cmd.agent;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.workflow.biz.AgentBiz;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.workflow.agent.AgentBean;
import weaver.workflow.agent.AgentDateBean;
import weaver.workflow.agent.AgentManager;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SaveAgentDetailCmd extends AbstractCommonCommand<Map<String,Object>>{
private HttpServletRequest request;
public SaveAgentDetailCmd(HttpServletRequest request, User user){
this.request = request;
this.user = user;
}
public Map<String, Object> execute(CommandContext commandContext) {
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
AgentManager agentManager = new AgentManager(user);
String result = "";
RecordSet rs = new RecordSet();
int agentid = Util.getIntValue(request.getParameter("agentid"), 0);
Map<String,Object> agentMap = getAgentInfo(agentid);
String workflowid = (String) agentMap.get("workflowid");
//代理人
int agenterid = (int) agentMap.get("agenterid");
//被代理人
int beagenterid = (int) agentMap.get("beagenterid");
AgentDateBean datebean = new AgentDateBean();
datebean.setBegindate(Util.null2String(request.getParameter("beginDate")));
datebean.setBegintime(Util.null2String(request.getParameter("beginTime")));
datebean.setEnddate(Util.null2String(request.getParameter("endDate")));
datebean.setEndtime(Util.null2String(request.getParameter("endTime")));
List<AgentBean> datas = AgentBiz.generateAgentBeanList(request);
int row_0_isPendThing = Util.getIntValue(request.getParameter("row_0_isPendThing"), 0);
int row_0_agentuid = Util.getIntValue(request.getParameter("row_0_agentuid"));
//int overlapMethod = Util.getIntValue(request.getParameter("overlapMethod"), 0);
int overlapMethod = 2; //默认以新保存代理覆盖被重复代理
String symbol = Util.null2String(request.getParameter("symbol"));
Class<?> clazz = Class.forName("com.customization.dito.sendtodo.SendPortalAgentCmd");
if("edit".equals(symbol)){
//对接门户
//代理已有的待办事宜
if(row_0_isPendThing == 1){
rs.writeLog("=========== SaveAgentDetailCmd agenterid =================="+agenterid);
rs.writeLog("=========== SaveAgentDetailCmd beagenterid =================="+beagenterid);
rs.writeLog("=========== SaveAgentDetailCmd row_0_agentuid =================="+row_0_agentuid);
//新的代理人和原有代理人 不一致,需要更新为新的代理人
if(agenterid != row_0_agentuid){
rs.executeUpdate("update workflow_agent set agenterid=? where agentid=?",row_0_agentuid,agentid);
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
Object newInstance = clazz.newInstance();
method.invoke(newInstance,beagenterid,agenterid,workflowid,user);
}
}else {
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
Object newInstance = clazz.newInstance();
method.invoke(newInstance,agenterid,beagenterid,workflowid,user);
}
}
}else{
if(agenterid != row_0_agentuid){
rs.executeUpdate("update workflow_agent set agenterid=? where agentid=?",row_0_agentuid,agentid);
// DealPortalTodoAndDone(row_0_agentuid, agenterid, workflowid);
}
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
Object newInstance = clazz.newInstance();
method.invoke(newInstance,beagenterid,agenterid,workflowid,user);
}
}
boolean ismodifyCondition = "true".equals(Util.null2String(request.getParameter("ismodifyCondition")));
result = agentManager.changeAgentSet(agentid, datebean, overlapMethod, ismodifyCondition, datas);
}else if("saveas".equals(symbol)){ //另存为
//对接门户
//代理已有的待办事宜
if(row_0_isPendThing == 1){
//新的代理人和原有代理人 不一致,需要更新为新的代理人
if(agenterid != row_0_agentuid){
rs.executeUpdate("update workflow_agent set agenterid=? where agentid=?",row_0_agentuid,agentid);
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
Object newInstance = clazz.newInstance();
method.invoke(newInstance,row_0_agentuid,beagenterid,workflowid,user);
}
}else {
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
Object newInstance = clazz.newInstance();
method.invoke(newInstance,agenterid,beagenterid,workflowid,user);
}
}
}else{
if(agenterid != row_0_agentuid){
rs.executeUpdate("update workflow_agent set agenterid=? where agentid=?",row_0_agentuid,agentid);
// DealPortalTodoAndDone(row_0_agentuid, agenterid, workflowid);
}
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
Object newInstance = clazz.newInstance();
method.invoke(newInstance,beagenterid,agenterid,workflowid,user);
}
}
result = agentManager.saveAsNewAgent(agentid, datebean, datas, overlapMethod);
}
apidatas.put("agentresult", result);
}catch(Exception e){
apidatas.put("api_status", false);
apidatas.put("api_errormsg", e.getMessage());
}
return apidatas;
}
@Override
public BizLogContext getLogContext() {
return null;
}
/**
*
* @param agentid
* @return
*/
public Map<String,Object> getAgentInfo(int agentid){
Map<String,Object> map = new HashMap<>();
RecordSet rs = new RecordSet();
rs.executeQuery("select * from workflow_agent where agentid=?",agentid);
while(rs.next()){
String workflowid = Util.null2String(rs.getString("workflowid"));
int agenterid = Util.getIntValue(rs.getString("agenterid"));
int beagenterid = Util.getIntValue(rs.getString("beagenterid"));
map.put("workflowid",workflowid);
map.put("agenterid",agenterid);
map.put("beagenterid",beagenterid);
}
return map;
}
}

@ -50,23 +50,23 @@ public class TakeBackAgentCmd extends AbstractCommonCommand<Map<String,Object>>{
if(!"".equals(keyid))
range.add(keyid);
}
agentManager.takeBackAgent(range, needBackRunning);
if(needBackRunning){
SendPortalTodoAndDone(range);
}
agentManager.takeBackAgent(range, needBackRunning);
}else if ("pt".equals(symbol)) { // 全部收回逻辑
int agentid = Util.getIntValue(request.getParameter("agentid"));
int bagentuid = Util.getIntValue(request.getParameter("bagentuid"));
String agentuid = agentManager.getAgentuid(agentid, bagentuid);
if(Util.getIntValue(agentuid) > 0){
range = agentManager.getAgentRangeByUser(Util.getIntValue(agentuid), bagentuid);
// 推送门户处理待办和已办
if(needBackRunning){
SendPortalTodoAndDone(range);
}
agentManager.takeBackAgent(range, needBackRunning);
}
}
// 推送门户处理待办和已办
if(needBackRunning){
SendPortalTodoAndDone(range);
}
} catch (Exception e) {
flag = false;
e.printStackTrace();
@ -131,6 +131,7 @@ public class TakeBackAgentCmd extends AbstractCommonCommand<Map<String,Object>>{
*/
public void DealPortalTodoAndDone(int agenterid, int beagenterid, String workflowids){
RecordSet rs = new RecordSet();
RecordSet rs1 = new RecordSet();
JSONArray taskObjectList = new JSONArray();
String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
@ -171,18 +172,18 @@ public class TakeBackAgentCmd extends AbstractCommonCommand<Map<String,Object>>{
" left join workflow_requestbase t1 on t.id=t1.workflowid " +
" left join workflow_currentoperator t2 on t1.requestid = t2.requestid " +
" left join hrmresource h1 on h1.id = t1.creater "+
" where t2.usertype=0 and t2.userid in (" + beagenterid +") and t.id in (" + workflowids +") "+
" where t2.usertype=0 and t2.userid in (" + agenterid +") and t.id in (" + workflowids +") "+
" and ((t2.isremark =0 and (t2.takisremark is null or t2.takisremark ='0')) or t2.isremark in('1','5','9','7','8','9','11') ) " +
" and t2.islasttimes=1 " +
" and (t.isvalid=3 or t.isvalid=1) ";
" and (t.isvalid=3 or t.isvalid=1) and t2.agenttype = 2 ";
String zhjkbs = "com.engine.workflow.cmd.agent.TakeBackAgentCmd.DealPortalTodoAndDone";
String actionType = "1";
String terminal = "1";
String taskType = "0";
rs.executeQuery(sql);
while (rs.next()) {
String requestid = Util.null2String(rs.getString("requestid"));
rs1.executeQuery(sql);
while (rs1.next()) {
String requestid = Util.null2String(rs1.getString("requestid"));
String workflowname = "";
String nodeId = "";
@ -274,11 +275,11 @@ public class TakeBackAgentCmd extends AbstractCommonCommand<Map<String,Object>>{
sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent);
}
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, userids, requestObject.toJSONString(), resultCode, "",zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(beagenterid), requestObject.toJSONString(), resultCode, "",zhjkbs,String.valueOf(agenterid));
} else {
String resultmsg = msgObject.getString("resultMsg");
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, userids, requestObject.toJSONString(), resultCode, resultmsg ,zhjkbs);
sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2(requestid, nodeId, nodeName, String.valueOf(beagenterid), requestObject.toJSONString(), resultCode, resultmsg ,zhjkbs,String.valueOf(agenterid));
}
}
}

Loading…
Cancel
Save