OfsExample.jsp 17 KB
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html>
<HTML>
<HEAD>
<style type="text/css">
body{
	font-size:12px;
	font-family:Consolas;
}
.hljs {
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  background: #fff;
  color: black;
  -webkit-text-size-adjust: none;
}

.hljs-comment,
.hljs-javadoc {
  color: #006a00;
}

.hljs-keyword,
.hljs-literal,
.nginx .hljs-title {
  color: #aa0d91;
}
.method,
.hljs-list .hljs-title,
.hljs-tag .hljs-title,
.setting .hljs-value,
.hljs-winutils,
.tex .hljs-command,
.http .hljs-title,
.hljs-request,
.hljs-status {
  color: #008;
}

.hljs-envvar,
.tex .hljs-special {
  color: #660;
}

.hljs-string {
  color: #c41a16;
}
.hljs-tag .hljs-value,
.hljs-cdata,
.hljs-filter .hljs-argument,
.hljs-attr_selector,
.apache .hljs-cbracket,
.hljs-date,
.hljs-regexp {
  color: #080;
}

.hljs-sub .hljs-identifier,
.hljs-pi,
.hljs-tag,
.hljs-tag .hljs-keyword,
.hljs-decorator,
.ini .hljs-title,
.hljs-shebang,
.hljs-prompt,
.hljs-hexcolor,
.hljs-rules .hljs-value,
.hljs-symbol,
.hljs-symbol .hljs-string,
.hljs-number,
.css .hljs-function,
.hljs-function .hljs-title,
.coffeescript .hljs-attribute {
  color: #1c00cf;
}

.hljs-class .hljs-title,
.smalltalk .hljs-class,
.hljs-javadoctag,
.hljs-yardoctag,
.hljs-phpdoc,
.hljs-dartdoc,
.hljs-type,
.hljs-typename,
.hljs-tag .hljs-attribute,
.hljs-doctype,
.hljs-class .hljs-id,
.hljs-built_in,
.setting,
.hljs-params,
.clojure .hljs-attribute {
  color: #5c2699;
}

.hljs-variable {
 color: #3f6e74;
}
.css .hljs-tag,
.hljs-rules .hljs-property,
.hljs-pseudo,
.hljs-subst {
  color: #000;
}

.css .hljs-class,
.css .hljs-id {
  color: #9b703f;
}

.hljs-value .hljs-important {
  color: #ff7700;
  font-weight: bold;
}

.hljs-rules .hljs-keyword {
  color: #c5af75;
}

.hljs-annotation,
.apache .hljs-sqbracket,
.nginx .hljs-built_in {
  color: #9b859d;
}

.hljs-preprocessor,
.hljs-preprocessor *,
.hljs-pragma {
  color: #643820;
}

.tex .hljs-formula {
  background-color: #eee;
  font-style: italic;
}

.diff .hljs-header,
.hljs-chunk {
  color: #808080;
  font-weight: bold;
}

.diff .hljs-change {
  background-color: #bccff9;
}

.hljs-addition {
  background-color: #baeeba;
}

.hljs-deletion {
  background-color: #ffc8bd;
}

.hljs-comment .hljs-yardoctag {
  font-weight: bold;
}

.method .hljs-id {
  color: #000;
}
</style>
</head>
<BODY>

<pre class='hljs'><code><span class="hljs-keyword">package</span> weaver.ofs.interfaces;

<span class="hljs-keyword">import</span> org.apache.commons.lang.StringUtils;
<span class="hljs-keyword">import</span> org.apache.commons.logging.Log;
<span class="hljs-keyword">import</span> org.apache.commons.logging.LogFactory;
<span class="hljs-keyword">import</span> weaver.general.BaseBean;
<span class="hljs-keyword">import</span> weaver.general.Util;
<span class="hljs-keyword">import</span> weaver.workflow.request.todo.DataObj;
<span class="hljs-keyword">import</span> weaver.workflow.request.todo.RequestStatusObj;
<span class="hljs-keyword">import</span> net.sf.json.<span class="hljs-keyword">JSONArray</span>;
<span class="hljs-keyword">import</span> net.sf.json.<span class="hljs-keyword">JSONObject</span>;

<span class="hljs-keyword">import</span> java.util.ArrayList;

<span class="hljs-comment">/**
 * 本示例,只将接受的数据打印在log/ecology中,具体的接口调用操作,请在相关数据遍历中执行。
 * 实现weaver.ofs.interfaces.SendRequestStatusDataInterfaces接口中SendRequestStatusData
 */</span>
<span class="hljs-keyword">public</span> class TestSendImpl <span class="hljs-keyword">implements</span>  SendRequestStatusDataInterfaces {

    <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> Log <span class="hljs-built_in">log</span> = LogFactory.getLog(TestSendImpl.class);

    <span class="hljs-comment">/**
     * 后台设置id
     */</span>
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">String</span> id ;
    <span class="hljs-comment">/**
     * 设置的系统编号
     */</span>
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">String</span> syscode ;
    <span class="hljs-comment">/**
     * 服务器URL
     */</span>
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">String</span> serverurl ;
    <span class="hljs-comment">/**
     * 流程白名单
     */</span>
    <span class="hljs-keyword">public</span> ArrayList&lt;<span class="hljs-keyword">String</span>&gt; workflowwhitelist ;
    <span class="hljs-comment">/**
     * 人员白名单
     */</span>
    <span class="hljs-keyword">public</span> ArrayList&lt;<span class="hljs-keyword">String</span>&gt; userwhitelist ;


    <span class="hljs-keyword">public</span> <span class="hljs-keyword">String</span> getId() {
        <span class="hljs-keyword">return</span> id;
    }
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">String</span> getSyscode() {
        <span class="hljs-keyword">return</span> syscode;
    }
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">String</span> getServerurl() {
        <span class="hljs-keyword">return</span> serverurl;
    }
    <span class="hljs-keyword">public</span> ArrayList&lt;<span class="hljs-keyword">String</span>&gt; getWorkflowwhitelist() {
        <span class="hljs-keyword">return</span> workflowwhitelist;
    }
    <span class="hljs-keyword">public</span> ArrayList&lt;<span class="hljs-keyword">String</span>&gt; getUserwhitelist() {
        <span class="hljs-keyword">return</span> userwhitelist;
    }

    <span class="hljs-comment">/**
     * 实现消息推送的具体方法
     * @param datas 传入的请求数据对象数据集
     */</span>
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> SendRequestStatusData(ArrayList&lt;DataObj&gt; datas) {

        <span class="hljs-keyword">for</span>(DataObj dobj : datas){
            <span class="hljs-keyword">JSONArray</span> jsonArray = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONArray</span>();
            <span class="hljs-keyword">JSONObject</span> mainboject = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONObject</span>();
            <span class="hljs-keyword">String</span> requestname  = <span class="hljs-string">""</span>;
            <span class="hljs-keyword">JSONObject</span> todojson = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONObject</span>();
            <span class="hljs-keyword">JSONObject</span> donejson = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONObject</span>();
            <span class="hljs-keyword">JSONObject</span> deljson = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONObject</span>();
            ArrayList&lt;RequestStatusObj&gt; tododatas = dobj.getTododatas();
            <span class="hljs-keyword">if</span>(tododatas.<span class="hljs-built_in">size</span>()&gt;<span class="hljs-number">0</span>){<span class="hljs-comment">//处理推送的待办数据</span>
                <span class="hljs-keyword">JSONArray</span> todolist = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONArray</span>();
                <span class="hljs-keyword">for</span>(RequestStatusObj rso : tododatas){<span class="hljs-comment">//遍历当前发送的待办数据</span>
                    <span class="hljs-keyword">JSONObject</span> rsojson = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONObject</span>();
                    requestname = rso.getRequstname() ;
                    rsojson.put(<span class="hljs-string">"cid"</span>,rso.getCid());
                    rsojson.put(<span class="hljs-string">"username"</span>,rso.getUser().getLastname()+<span class="hljs-string">"("</span>+rso.getUser().getUID()+<span class="hljs-string">")"</span>);
                    rsojson.put(<span class="hljs-string">"isremark"</span>,rso.getIsremark());
                    rsojson.put(<span class="hljs-string">"viewtype"</span>,rso.getViewtype());
                    rsojson.put(<span class="hljs-string">"receivedatetime"</span>,rso.getReceivedate()+<span class="hljs-string">" "</span>+rso.getReceivetime()+<span class="hljs-string">"/"</span>+rso.getOperatedate()+<span class="hljs-string">" "</span>+rso.getOperatetime());
                    rsojson.put(<span class="hljs-string">"nodename"</span>,rso.getNodename());
                    todolist.<span class="hljs-built_in">add</span>(rsojson);
                }
                todojson.put(<span class="hljs-string">"TodoCount"</span>,tododatas.<span class="hljs-built_in">size</span>());
                todojson.put(<span class="hljs-string">"TodoDatas"</span>,todolist);
                jsonArray.<span class="hljs-built_in">add</span>(todojson);
            }
            ArrayList&lt;RequestStatusObj&gt; donedatas = dobj.getDonedatas();
            <span class="hljs-keyword">if</span>(donedatas.<span class="hljs-built_in">size</span>()&gt;<span class="hljs-number">0</span>){<span class="hljs-comment">//处理推送的已办数据</span>
                <span class="hljs-keyword">JSONArray</span> todolist = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONArray</span>();
                <span class="hljs-keyword">for</span>(RequestStatusObj rso : donedatas){<span class="hljs-comment">//遍历当前发送的已办数据</span>
                    <span class="hljs-keyword">JSONObject</span> rsojson = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONObject</span>();
                    requestname = rso.getRequstname() ;
                    rsojson.put(<span class="hljs-string">"cid"</span>,rso.getCid());
                    rsojson.put(<span class="hljs-string">"username"</span>,rso.getUser().getLastname()+<span class="hljs-string">"("</span>+rso.getUser().getUID()+<span class="hljs-string">")"</span>);
                    rsojson.put(<span class="hljs-string">"isremark"</span>,rso.getIsremark());
                    rsojson.put(<span class="hljs-string">"viewtype"</span>,rso.getViewtype());
                    rsojson.put(<span class="hljs-string">"receivedatetime"</span>,rso.getReceivedate()+<span class="hljs-string">" "</span>+rso.getReceivetime()+<span class="hljs-string">"/"</span>+rso.getOperatedate()+<span class="hljs-string">" "</span>+rso.getOperatetime());
                    rsojson.put(<span class="hljs-string">"nodename"</span>,rso.getNodename());
                    rsojson.put(<span class="hljs-string">"iscomplete"</span>,rso.getIscomplete());
                    todolist.<span class="hljs-built_in">add</span>(rsojson);
                }
                donejson.put(<span class="hljs-string">"DoneCount"</span>,donedatas.<span class="hljs-built_in">size</span>());
                donejson.put(<span class="hljs-string">"DoneDatas"</span>,todolist);
                jsonArray.<span class="hljs-built_in">add</span>(donejson);
            }
            ArrayList&lt;RequestStatusObj&gt; deldatas = dobj.getDeldatas();
            <span class="hljs-keyword">if</span>(deldatas.<span class="hljs-built_in">size</span>()&gt;<span class="hljs-number">0</span>){<span class="hljs-comment">//处理推送的删除数据</span>
                <span class="hljs-keyword">JSONArray</span> todolist = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONArray</span>();
                <span class="hljs-keyword">for</span>(RequestStatusObj rso : donedatas){<span class="hljs-comment">//遍历当前发送的删除数据</span>
                    requestname = rso.getRequstname() ;
                    <span class="hljs-keyword">JSONObject</span> rsojson = <span class="hljs-keyword">new</span> <span class="hljs-keyword">JSONObject</span>();
                    rsojson.put(<span class="hljs-string">"cid"</span>,rso.getCid());
                    rsojson.put(<span class="hljs-string">"username"</span>,rso.getUser().getLastname()+<span class="hljs-string">"("</span>+rso.getUser().getUID()+<span class="hljs-string">")"</span>);
                    todolist.<span class="hljs-built_in">add</span>(rsojson);
                }
                deljson.put(<span class="hljs-string">"DelCount"</span>,deldatas.<span class="hljs-built_in">size</span>());
                deljson.put(<span class="hljs-string">"DelDatas"</span>,todolist);
                jsonArray.<span class="hljs-built_in">add</span>(deljson);
            }

            mainboject.put(<span class="hljs-string">"syscode"</span>,syscode);
            mainboject.put(<span class="hljs-string">"requestid"</span>,dobj.getRequestid());
            mainboject.put(<span class="hljs-string">"requestname"</span>,requestname);
            mainboject.put(<span class="hljs-string">"sendtimestamp"</span>,dobj.getSendtimestamp());
            mainboject.put(<span class="hljs-string">"RequestDatas"</span>,jsonArray);

            <span class="hljs-comment">//输入内容信息到日志文件中 /log/ecology</span>
            <span class="hljs-built_in">log</span>.error(<span class="hljs-string">"\n"</span>+formatJson(mainboject.toString()));
        }

    }

    <span class="hljs-comment">/**
     * 格式化JSON格式输出
     *
     * @param jsonStr
     * @return 返回指定格式化的数据
     */</span>
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">String</span> formatJson(<span class="hljs-keyword">String</span> jsonStr) {
        <span class="hljs-keyword">if</span> (<span class="hljs-keyword">null</span> == jsonStr || <span class="hljs-string">""</span>.equals(jsonStr))
            <span class="hljs-keyword">return</span> <span class="hljs-string">""</span>;
        StringBuilder sb = <span class="hljs-keyword">new</span> StringBuilder();
        <span class="hljs-built_in">char</span> last = <span class="hljs-string">'\0'</span>;
        <span class="hljs-built_in">char</span> current = <span class="hljs-string">'\0'</span>;
        <span class="hljs-built_in">int</span> indent = <span class="hljs-number">0</span>;
        <span class="hljs-built_in">boolean</span> isInQuotationMarks = <span class="hljs-keyword">false</span>;
        <span class="hljs-keyword">for</span> (<span class="hljs-built_in">int</span> i = <span class="hljs-number">0</span>; i &lt; jsonStr.length(); i++) {
            last = current;
            current = jsonStr.charAt(i);
            <span class="hljs-keyword">switch</span> (current) {
                <span class="hljs-keyword">case</span> <span class="hljs-string">'"'</span>:
                    <span class="hljs-keyword">if</span> (last != <span class="hljs-string">'\\'</span>){
                        isInQuotationMarks = !isInQuotationMarks;
                    }
                    sb.<span class="hljs-built_in">append</span>(current);
                    <span class="hljs-keyword">break</span>;
                <span class="hljs-keyword">case</span> <span class="hljs-string">'{'</span>:
                <span class="hljs-keyword">case</span> <span class="hljs-string">'['</span>:
                    sb.<span class="hljs-built_in">append</span>(current);
                    <span class="hljs-keyword">if</span> (!isInQuotationMarks) {
                        sb.<span class="hljs-built_in">append</span>(<span class="hljs-string">'\n'</span>);
                        indent++;
                        addIndentBlank(sb, indent);
                    }
                    <span class="hljs-keyword">break</span>;
                <span class="hljs-keyword">case</span> <span class="hljs-string">'}'</span>:
                <span class="hljs-keyword">case</span> <span class="hljs-string">']'</span>:

                    <span class="hljs-keyword">if</span> (!isInQuotationMarks) {
                        sb.<span class="hljs-built_in">append</span>(<span class="hljs-string">'\n'</span>);
                        indent--;
                        addIndentBlank(sb, indent);
                    }
                    sb.<span class="hljs-built_in">append</span>(current);
                    <span class="hljs-keyword">break</span>;
                <span class="hljs-keyword">case</span> <span class="hljs-string">','</span>:
                    sb.<span class="hljs-built_in">append</span>(current);
                    <span class="hljs-keyword">break</span>;
                <span class="hljs-keyword">default</span>:
                    sb.<span class="hljs-built_in">append</span>(current);
            }
        }

        <span class="hljs-keyword">return</span> sb.toString();
    }

    <span class="hljs-comment">/**
     * 添加space(缩进)
     * @param sb
     * @param indent
     */</span>
    <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> addIndentBlank(StringBuilder sb, <span class="hljs-built_in">int</span> indent) {
        <span class="hljs-keyword">for</span> (<span class="hljs-built_in">int</span> i = <span class="hljs-number">0</span>; i &lt; indent; i++) {
            sb.<span class="hljs-built_in">append</span>(<span class="hljs-string">'\t'</span>);
        }
    }

}
</code></pre>
</BODY>
</HTML>