From c27ab8de5f60ed42269d0389697418ae74d206d0 Mon Sep 17 00:00:00 2001 From: liuliang <401809302@qq.com> Date: Fri, 17 Mar 2023 17:03:03 +0800 Subject: [PATCH] liuliang --- interface/mobilejump/createTodoWorkflow.jsp | 177 ++++++++++++++++++ .../sendtodo/SendPortalWithAddTodoCmd.java | 59 +++--- 2 files changed, 208 insertions(+), 28 deletions(-) create mode 100644 interface/mobilejump/createTodoWorkflow.jsp diff --git a/interface/mobilejump/createTodoWorkflow.jsp b/interface/mobilejump/createTodoWorkflow.jsp new file mode 100644 index 00000000..96a10387 --- /dev/null +++ b/interface/mobilejump/createTodoWorkflow.jsp @@ -0,0 +1,177 @@ +<%@ page import="weaver.hrm.User" %> +<%@ page import="weaver.general.BaseBean" %> +<%@ page import="com.customization.dito.sendtodo.SendPortalErrorUtil" %> +<%@ page import="com.customization.dito.sendtodo.HttpRequestUtil" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="weaver.interfaces.dito.comInfo.PropBean" %> +<%@ page import="com.time.util.DateUtil" %> +<%@ page import="weaver.general.Util" %> +<%@ page import="org.apache.commons.lang.StringUtils" %> +<%@ page import="java.net.URLEncoder" %> +<%@ page import="java.io.UnsupportedEncodingException" %> +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="weaver.hrm.HrmUserVarify" %> +<%@ page import="java.util.Map" %> +<%@ page import="java.util.List" %> +<%@ page import="com.alibaba.fastjson.JSONArray" %> +<%@ page import="java.util.HashMap" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + +<% + String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); + String portal_todourl = PropBean.getUfPropValue("portal_todourl"); + String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl"); + String username = PropBean.getUfPropValue("username"); + String passwd = PropBean.getUfPropValue("passwd"); + String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl"); + String requestid = request.getParameter("requestId"); + String userId = request.getParameter("userId"); + String center = PropBean.getUfPropValue("center"); + + sendTodoDataByNode(requestid,userId,username,passwd,center,portal_todourl,bpm_workflowurl,bpm_app_workflowurl,bpm_app_requesturl); +%> + +<%! + + + public void sendTodoDataByNode(String requestid, String userId, 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 mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + + JSONObject requestObject = new JSONObject(); + RecordSet rs = new RecordSet(); + + BaseBean bb = new BaseBean(); + bb.writeLog("SendPortalQithRawRunnable--sendTodoDataByNode"); + + String terminal = "1" ; + String taskType = "0"; + String actionType = "0" ; + String objectAction = "0" ; + String objectType = "0"; + + try { + String sql = ""; + + 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("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"+ + " 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("lastname")) ; + } + + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("creator",lastName); + requestObject.put("taskCode",requestid); + requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",processTime); + requestObject.put("messageTitle",getShortMessageTitle(requestname)); + requestObject.put("messageContent",requestname); + requestObject.put("terminal",terminal); + requestObject.put("urlPc",urlPc); + requestObject.put("urlApp",urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("nodeName",nodeName); + requestObject.put("ticketType",workflowname); + + + JSONArray taskObjectList = new JSONArray(); + String cus_staff = PropBean.getUfPropValue("cus_staff") ; + String scopeid = "-1"; + String scope = "HrmCustomFieldByInfoType" ; + + + + String userSql = "select a."+cus_staff+" as staffid,b.loginid from cus_fielddata a,hrmresource b where a.scopeid=-1 and a.scope='HrmCustomFieldByInfoType' and a.id=b.id and a.id=?"; + rs.executeQuery(userSql,userId); + requestObject.put("nodeId",requestObject.getString("nodeId")+userId); + + if (rs.next()){ + String staffid = Util.null2String(rs.getString("staffid")); + String loginid = Util.null2String(rs.getString("loginid")); + if("sysadmin".equals(loginid)){ + loginid = "Admin"; + } + + JSONObject taskObject = new JSONObject(); + + taskObject.put("objectAction",objectAction); + taskObject.put("objectType",objectType); + taskObject.put("objectCode",loginid); + taskObject.put("objectId",staffid); + taskObject.put("operatorCode",loginid); + taskObjectList.add(taskObject); + } + + + requestObject.put("taskObjectList",taskObjectList); + + String auth = username + ":" + passwd; + bb.writeLog("sendTodoDataByNode---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("msgdata:"+msgdata); + Map 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)){ + map.put("resultCode","0"); + }else{ + bb.writeLog(msgObject.get("resultMsg")); + // sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); + map.put("resultCode",resultCode); + map.put("resultMsg",msgObject.get("resultMsg")); + } + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + private String getShortMessageTitle(String messageTitle) { + if (messageTitle.length() > 20) { + messageTitle = messageTitle.substring(0, 17) + "..."; + } + return messageTitle; + } +%> + diff --git a/src/com/customization/dito/sendtodo/SendPortalWithAddTodoCmd.java b/src/com/customization/dito/sendtodo/SendPortalWithAddTodoCmd.java index 3105b6f1..17a0cc1b 100644 --- a/src/com/customization/dito/sendtodo/SendPortalWithAddTodoCmd.java +++ b/src/com/customization/dito/sendtodo/SendPortalWithAddTodoCmd.java @@ -126,7 +126,7 @@ public class SendPortalWithAddTodoCmd { requestObject.put("title",requestname); requestObject.put("creator",lastName); requestObject.put("taskCode","weaver"+requestid); - requestObject.put("nodeId",nodeId); + requestObject.put("taskType",taskType); requestObject.put("actionType",actionType); requestObject.put("createDate",processTime); @@ -145,8 +145,10 @@ public class SendPortalWithAddTodoCmd { String scopeid = "-1"; String scope = "HrmCustomFieldByInfoType" ; + + JSONArray taskObjectList = new JSONArray(); for (Map todoMap: todolist){ - JSONArray taskObjectList = new JSONArray(); + JSONObject taskObject = new JSONObject(); sql = " select count(0) num "+ " from workflow_requestbase t1\n" + @@ -199,7 +201,7 @@ public class SendPortalWithAddTodoCmd { //requestObject2.put("taskCode",rs.getString("requestid")+"_cs_"+nodeId+"_"+rs.getString("userid")); requestObject2.put("taskCode",rs.getString("requestid")+"_cs_"+rs.getString("userid")); - JSONObject taskObject = new JSONObject(); + String creator = rs.getString("loginid"); if("sysadmin".equals(creator)){ creator = "Admin"; @@ -248,7 +250,7 @@ public class SendPortalWithAddTodoCmd { //sendMailUtil.sendMail(requestid, emailArray, notificationSubject, notificationContent); } - sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,rs.getString("nodename"),rs.getString("userid"),requestObject.toJSONString(),resultCode,""); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,rs.getString("nodename"),rs.getString("userid"),requestObject2.toJSONString(),resultCode,""); }else if ("TODO-FAIL-002".equals(resultCode)){ //The task does not exist.任务不存在,则新增 @@ -260,7 +262,7 @@ public class SendPortalWithAddTodoCmd { }else{ String resultmsg = msgObject.getString("resultMsg"); - sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,rs.getString("nodename"),rs.getString("userid"),requestObject.toJSONString(),resultCode,resultmsg); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,rs.getString("nodename"),rs.getString("userid"),requestObject2.toJSONString(),resultCode,resultmsg); } } @@ -270,13 +272,12 @@ public class SendPortalWithAddTodoCmd { SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); String userSql = "select "+cus_staff+" as staffid from cus_fielddata where scopeid=-1 and scope='HrmCustomFieldByInfoType' and id=?"; rs.executeQuery(userSql,todoMap.get("id")); - requestObject.put("nodeId",requestObject.getString("nodeId")+todoMap.get("id")); + requestObject.put("nodeId",nodeId+todoMap.get("id")); String loginid = Util.null2String(todoMap.get("loginid")); if("sysadmin".equals(loginid)){ loginid = "Admin"; } - JSONObject taskObject = new JSONObject(); if (rs.next()){ String staffid = Util.null2String(rs.getString("staffid")); taskObject.put("objectId",staffid); @@ -286,31 +287,33 @@ public class SendPortalWithAddTodoCmd { taskObject.put("objectCode",loginid); taskObject.put("operatorCode",loginid); taskObjectList.add(taskObject); - requestObject.put("taskObjectList",taskObjectList); - - String auth = username + ":" + passwd; - bb.writeLog("sendTodoDataByNode---requestObject:"+requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); - bb.writeLog("msgdata:"+msgdata); - Map 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)){ - map.put("resultCode","0"); - }else{ - bb.writeLog(msgObject.get("resultMsg")); - sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeId,rs.getString("nodename"),rs.getString("userid"),requestObject.toJSONString(),resultCode,msgObject.getString("resultMsg")); - - map.put("resultCode",resultCode); - map.put("resultMsg",msgObject.get("resultMsg")); - } + } + } + //发送待办 + if (taskObjectList.size() > 0){ + requestObject.put("taskObjectList",taskObjectList); + + String auth = username + ":" + passwd; + bb.writeLog("sendTodoDataByNode---requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("msgdata:"+msgdata); + Map 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)){ + map.put("resultCode","0"); + }else{ + bb.writeLog(msgObject.get("resultMsg")); + map.put("resultCode",resultCode); + map.put("resultMsg",msgObject.get("resultMsg")); } } } } + } catch (Exception e) { e.printStackTrace(); }