diff --git a/src/com/engine/dito/reqremark/cmd/RequestRemarkOverTimeCmd.java b/src/com/engine/dito/reqremark/cmd/RequestRemarkOverTimeCmd.java new file mode 100644 index 00000000..aca4d8c4 --- /dev/null +++ b/src/com/engine/dito/reqremark/cmd/RequestRemarkOverTimeCmd.java @@ -0,0 +1,331 @@ +package com.engine.dito.reqremark.cmd; + +import com.alibaba.fastjson.JSONObject; +import com.customization.dito.sendtodo.HttpRequestUtil; +import com.customization.dito.sendtodo.SendPortalErrorUtil; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import com.time.util.DateUtil; +import org.apache.commons.lang.StringUtils; +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.HashMap; +import java.util.Map; + + +public class RequestRemarkOverTimeCmd extends AbstractCommonCommand> { + @Override + public BizLogContext getLogContext() { + return null; + } + + public RequestRemarkOverTimeCmd(Map params, User user) { + this.params = params; + this.user = user; + } + + @Override + public Map execute(CommandContext commandContext) { + String currentUserId = user.getUID()+""; + BaseBean bb = new BaseBean(); + + String requestid = Util.null2String(params.get("requestid")); + bb.writeLog("RequestRemarkArchivedCmd-requestid:"+requestid); + + String nodeid = Util.null2String(params.get("nodeid")); + Map map = new HashMap(); + String resultCode = sendRemarkArchivedPortalDoneData(requestid,nodeid,currentUserId); + bb.writeLog("RequestRemarkArchivedCmd-resultCode:"+resultCode); + if("0".equals(resultCode) || "DONE-FAIL-001".equals(resultCode)){ + bb.writeLog("RequestRemarkArchivedCmd-resultCode22:"+resultCode); + resultCode = completeRemarkArchivedPortalReadData(requestid, nodeid,currentUserId); + } + map.put("resultcode",resultCode); + return map; + } + + + /*** + * + * @param requestid + * @param nodeid + * @param currentUserId + */ + public String completeRemarkArchivedPortalReadData(String requestid, String nodeid,String currentUserId){ + + 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 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"); + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + bb.writeLog("completeRemarkArchivedPortalReadData"); + String actionType = "3" ; + String terminal = "1" ; + String taskType = "1"; //0 – 待办 1 –待阅 + + String objectAction = "0" ; + String objectType = "0"; + String objectId = "" ; + + + 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 = '" + currentUserId + "'"; + rs.executeQuery(sql); + if (rs.next()) { + workcode = Util.null2String(rs.getString("loginid")); + } + + bb.writeLog("completeRemarkArchivedPortalReadData-workcode:"+workcode); + + 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 requestname = ""; + String workflowname = "" ; + + sql = " select t1.requestname,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = " + requestid; + bb.writeLog("completeRemarkArchivedPortalReadData-sql:"+sql); + rs.execute(sql); + if (rs.next()) { + workflowname = Util.null2String(rs.getString("workflowname")) ; + requestname = Util.null2String(rs.getString("requestname")) ; + } + + String createdate = TimeUtil.getCurrentDateString(); + String createtime = TimeUtil.getCurrentTimeString(); + String nodename = getNodeName(nodeid); + + JSONObject requestObject = new JSONObject(); + requestObject.put("center",center); + requestObject.put("title",requestname); + requestObject.put("creator",workcode); + requestObject.put("taskCode", requestid+"_cs_"+currentUserId); + requestObject.put("nodeId",nodeid); + requestObject.put("taskType",taskType); + requestObject.put("actionType",actionType); + requestObject.put("createDate",createdate+" "+createtime); + 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",getNodeName(nodeid)); + 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("completeRemarkArchivedPortalReadData-requestObject:"+requestObject.toJSONString()); + + String auth = username + ":" + passwd; + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); + bb.writeLog("completeRemarkArchivedPortalReadData-msgdata:"+msgdata); + if(StringUtils.isNotEmpty(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if(msgObject.containsKey("resultCode")){ + resultCode = msgObject.getString("resultCode"); + if(!"0".equals(resultCode)){ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,currentUserId,requestObject.toJSONString(),resultCode,resultmsg); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + return resultCode; + } + + + + /*** + * + * @param requestid + * @param nodeid + * @param userid + */ + public String sendRemarkArchivedPortalDoneData(String requestid, String nodeid,String userid) { + + String resultCode = "" ; + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + bb.writeLog("RequestRemarkArchivedCmd--sendRemarkArchivedPortalDoneData"); + + SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + + String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); + String portal_doneurl = PropBean.getUfPropValue("portal_doneurl"); + 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 center = PropBean.getUfPropValue("center"); + String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl"); + + String isRecall = "1"; + String actionType = "0"; + + try { + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String workcode = ""; + String sql = "select loginid from hrmresource where id = '" + userid + "'"; + rs.execute(sql); + while (rs.next()) { + workcode = Util.null2String(rs.getString("loginid")); + } + + 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"); + } + + int count = 0; + sql = " 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 in ('4')\n" + + " and t2.preisremark in ('4')\n" + + " and t2.requestid = "+requestid +" and t2.userid in ("+userid+")"; + bb.writeLog("sendRemarkArchivedPortalDoneData--sql:"+sql); + rs.execute(sql); + if (rs.next()) { + count++; + } + bb.writeLog("sendRemarkArchivedPortalDoneData--count:"+count); + if(count > 0) + { + String requestname = "" ; + String workflowname = "" ; + sql = " select t1.workflowid,t1.requestname,t1.requestmark,t3.workflowname\n" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = " + requestid; + + rs.execute(sql); + if (rs.next()) { + requestname = Util.null2String(rs.getString("requestname")); + workflowname = Util.null2String(rs.getString("workflowname")); + } + + String nodename = getNodeName(nodeid); + + JSONObject requestObject = new JSONObject(); + requestObject.put("center", center); + requestObject.put("taskCode", requestid+"_cs_"+userid); + requestObject.put("nodeId", nodeid); + requestObject.put("title", getShortMessageTitle(requestname)); + requestObject.put("creator", workcode); + requestObject.put("processStaff", workcode); + requestObject.put("processTime", processTime); + requestObject.put("isRecall", isRecall); + requestObject.put("actionType", actionType); + requestObject.put("urlPC", urlPc); + requestObject.put("urlApp", urlApp); + requestObject.put("urlDing",urlDing); + requestObject.put("ticketType",workflowname); + + String auth = username + ":" + passwd; + bb.writeLog("sendRemarkArchivedPortalDoneData-requestObject:"+requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth); + bb.writeLog("sendRemarkArchivedPortalDoneData-msgdata:" + msgdata); + if(StringUtils.isNotEmpty(msgdata)){ + JSONObject msgObject = JSONObject.parseObject(msgdata); + //{"resultCode":"1","resultMsg":"No Result"} + if(msgObject.containsKey("resultCode")){ + resultCode = msgObject.getString("resultCode"); + if(!"0".equals(resultCode)){ + String resultmsg = msgObject.getString("resultMsg"); + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg); + }else{ + sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,""); + } + } + } + } + } catch (Exception e) { + bb.writeLog("sendRemarkArchivedPortalDoneData-e:"+e); + } + return resultCode; + } + + + /*** + * + * @param messageTitle + * @return + */ + private String getShortMessageTitle(String messageTitle) { + if (messageTitle.length() > 20) { + messageTitle = messageTitle.substring(0, 17) + "..."; + } + return messageTitle; + } + + + /*** + * + * @param id + * @return + */ + private String getNodeName(String id){ + RecordSet rs = new RecordSet(); + String name = ""; + rs.executeQuery(" select nodename from workflow_nodebase where id = ?",id); + while (rs.next()){ + name = Util.null2String(rs.getString("nodename")); + } + return name; + } + + +}