java后台获取和js拼接展示信息:

html页面代码:

<div class="results-bd">
<table id="activityInfoTable">
<tbody id="activityInfoTbody">
</tbody>
</table>
</div>

javaScript代码(拼接为多个表格形式展示):

getAuditProgressDetails : function(projectguid){
WebAPI.getAuditProgressDetailsAPI(projectguid,function(data) {
if (data.boo) {
// 表格形式展示所有步骤得所有部门信息
var activityJSONObjectList = data.UserArea.activityJSONObjectList;
console.log("activityJSONObjectList===="+activityJSONObjectList);
var num = 1;
var htmlphase = "";
            // 先循环所有处理步骤
for (var i = 0; i < activityJSONObjectList.length; i++) {
htmlphase+="<div><tr><td colspan='6'><span style=\"font-size: 30px; font-family: 微软雅黑; font-weight: bold;\">"+activityJSONObjectList[i].activityName+"</span></td></tr>";
var ouinfoJSONObjectList= activityJSONObjectList[i].ouinfoJSONObjectList;
htmlphase += "<tr><th scope=\"col\">序号</th>"
+"<th scope='col'>部门名称</th>"
+"<th scope='col'>办理地址</th>"
+"<th scope='col'>联系电话</th></tr></div>";

              // 再循环每个步骤中的每个处理部门信息
              for (var j = 0; j < ouinfoJSONObjectList.length; j++){
var tr = "<tr>";
tr += "<td>" + num + "</td>";
tr += "<td>" + ouinfoJSONObjectList[j].ouname + "</td>";
tr += "<td>" + ouinfoJSONObjectList[j].address + "</td>";
//tr += "<td><a href=\"####\" onclick=openDetail('"+projectlist[j].projectGuid+"')>" + projectlist[j].taskName + "</a></td>";
//tr += "<td><a href='../../../../epointzwfw/dzjc/spjd/AuditProjectDetailPage.jspx?rowGuid="+projectlist[j].projectGuid+"'>" + projectlist[j].taskName + "</a></td>";
tr += "<td>" + ouinfoJSONObjectList[j].ouLinkphone + "</td>"; num ++;
tr += "</tr>";
htmlphase += tr;
}
}
$("#activityInfoTbody").html(htmlphase);
} else {
DialogBox.dialog.alert('系统提示',data.Description);
}
});
},

里面的webapi就是一个封装的js,集中调用封装了的js的ajax交互方法:

// 个人中心正在审批模块查看当前审批进度
getAuditProgressDetailsAPI : function(projectguid, func) {
// restful接口的类注解/方法注解
var url = "/AuditProject/getAuditProgressDetails";
var jsonData = {
paras : {
projectguid : projectguid
}
};
this.postAPINew(url, jsonData, func); },

javaSrcipt中返回的的数据调用的后台获取接口代码(restful接口,action层业务管理层):

@Path("/AuditProject")
public class WsbsdtAuditProjectAction {

// 正在审批查看当前进度
@Path("/getAuditProgressDetails")
@POST
@Produces(MediaType.APPLICATION_JSON)
public String getAuditProgressDetails(String receivedata, @Context HttpServletRequest request) {
String receivejson = HandleCommonReceiveDataUtil.handleReceiveData(request.getParameterMap(), receivedata);
return JSONCommonUtil.doService(receivejson, WsbsdtAuditProjectService.class, "getAuditProgressDetails");
}
}

action层业务管理层 所调用的 service层业务逻辑实施层 的方法代码

public class WsbsdtAuditProjectService extends BaseService {
  
  /**
* 正在审批查看当前进度
* @param receiveData
* @return
* @exception/throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
* AND w.Status='20'
*/
public ReturnData getAuditProgressDetails(ReceiveData receiveData) { log.info("=======开始调用getAuditProgressDetails接口=======");
ReturnData returndata = new ReturnData();
// 1、获取token
String token = receiveData.getValidateData();
// 2、验证Token
// boolean iscorrect = TokenUtil.validateToken(token);
boolean iscorrect = true;
if (iscorrect) {
try {
log.info("=======开始获取getAuditProgressDetails接口参数=======");
// 3、获取参数
// 获取办件唯一标识
String projectguid = receiveData.getParam("projectguid".toUpperCase());
AuditProject auditProject = service.getBeanByguid(projectguid, "AuditProject");
String pviguid =""; if(StringUtil.isNotBlank(auditProject)){
pviguid = auditProject.getPviguid();
}
// 获取处理过和正在的所有步骤           // service.getResultListNative为封装了的dao层即数据库访问操作层
String getAllActivitySql = "select ActivityGuid from Workflow_WorkItem WHERE ProcessVersionInstanceGuid='"+pviguid+"' group by ActivityGuid order by max(CreateDate);";
List<String> activityGuidList=service.getResultListNative(getAllActivitySql);

          // 外层list对象,返回JSONObject的list列表
List<JSONObject> activityJSONObjectList = new ArrayList<JSONObject>();
if(activityGuidList.size()>0){
for(String activityGuid : activityGuidList){
// 外层list对象包含的每个序号的对象
JSONObject activityJSONObject = new JSONObject();
String getActivityNameByGuidSql = "SELECT ActivityName FROM Workflow_Activity WHERE ActivityGuid='"+activityGuid+"' ";
// 要判断返回Null值情况,避免bug
String activityName = StringUtil.isBlank(service.getSingleResultNative(getActivityNameByGuidSql))?"":service.getSingleResultNative(getActivityNameByGuidSql).toString();
String judgeIsCurrentActivitySql = "SELECT TOP 1 Status FROM Workflow_WorkItem WHERE Status='20' AND ProcessVersionInstanceGuid='"+pviguid+"' AND ActivityGuid='"+activityGuid+"' ";
String status = StringUtil.isBlank(service.getSingleResultNative(judgeIsCurrentActivitySql))?"":service.getSingleResultNative(judgeIsCurrentActivitySql).toString();
if("20".equals(status)){
activityName += "(当前处理步骤)";
}
activityJSONObject.accumulate("activityGuid", activityGuid);
activityJSONObject.accumulate("activityName", activityName); // 获取该步骤下发给的所有接收人
String getAllTransactorSql = "select Transactor from Workflow_WorkItem WHERE ProcessVersionInstanceGuid='"+pviguid+"' AND ActivityGuid='"+activityGuid+"' ";
List<String> transactorList=service.getResultListNative(getAllTransactorSql);
// 内层的list对象
List<JSONObject> ouinfoJSONObjectList = new ArrayList<JSONObject>();
if(transactorList.size()>0){
for(String transactor : transactorList){
// 内层list包含的每个序号的对象
JSONObject ouinfoJSONObject = new JSONObject();
// 获取处理部门信息
String getOuByUserguidSql = "SELECT * FROM Frame_OU WHERE OUGuid=(SELECT OUGuid FROM Frame_User WHERE UserGuid='"+transactor+"') ";
FrameOu frameOu = service.getSingleResultNative(getOuByUserguidSql, FrameOu.class);
// 该处理部门名称
String ouname = "";
// 该处理部门联系电话
String ouLinkphone = "";
// 办理地址
String address = "";
ouname = frameOu.getOuname();
ouLinkphone = frameOu.getTel();
address = frameOu.getAddress();
ouinfoJSONObject.accumulate("ouname", ouname);
ouinfoJSONObject.accumulate("ouLinkphone", ouLinkphone);
ouinfoJSONObject.accumulate("address", address);
ouinfoJSONObjectList.add(ouinfoJSONObject);
}
activityJSONObject.accumulate("ouinfoJSONObjectList", ouinfoJSONObjectList);
}
activityJSONObjectList.add(activityJSONObject);
}
} returndata.putUserData("activityJSONObjectList", activityJSONObjectList.toString());
}
catch (Exception e) {
returndata = ReturnData.False(e.getMessage());
this.log.error(e.getMessage());
}
}
else {
returndata = ReturnData.False("身份验证失败:" + token);
this.log.error("身份验证失败:" + receiveData.getValidateData());
}
log.info("=======getAuditProgressDetails接口调用结束=======");
return returndata;
  } }

java后台获取和js拼接展示信息的更多相关文章

  1. 微信小程序:java后台获取openId

    一.功能描述 openId是某个微信账户对应某个小程序或者公众号的唯一标识,但openId必须经过后台解密才能获取(之前实现过前台解密,可是由于微信小程序的种种限制,前台解密无法在小程序发布后使用) ...

  2. java后台获取Access_token的工具方法

    本方法主要通过java后台控制来获取Access_token,需要你已经知道自己的ID跟密码 因为微信的权限设置大概每天可以获取两千条,每条有效时间为2小时 /** * 输入自己的id跟密码,获取微信 ...

  3. 你不可错过的二维码生成与解析-java后台与前端js都有

    1.二维码分类   二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型. 线性堆叠式二维码 编码原理: 建立在一维条码基础之上,按需要堆积成两行或多行. 图示: 矩阵式二维码 最常用编 ...

  4. java后台获取微信小程序openid

    一.jar包准备 1.在网盘下载 链接:https://pan.baidu.com/s/15HAAWOg_yn768g4s9IrcPg 提取码:hgj0 二.在pom文件中添加依赖 1.将外部的引入的 ...

  5. Base64 JAVA后台编码与JS前台解码(解决中文乱码问题)

    中文通过Java后台进行Base64编码后传到前台,通过JS进行Base64解码时会出现中文乱码的问题,被这个问题也是困扰了几天,使用jquery.base64.js只能转码非中文字符,经过搜集各种方 ...

  6. Java Scala获取所有注解的类信息

    要想获取使用指定注解的类信息,可借助工具: org.reflections.Reflections 此工具将Java反射进行了高级封装,Reflections 通过扫描 classpath,索引元数据 ...

  7. java反射获取注解并拼接sql语句

    先建两个注解 分别为 Table 和 Column package com.hk.test; import java.lang.annotation.ElementType; import java. ...

  8. java后台获取国际化资源文件

    //current属性,由于此属性只做赋值操作,不做取值操作,因此没有get方法 private Locale current; public void setCurrent(Locale cur) ...

  9. java后台获取URL带参demo

    URL:http://aos.wall.youmi.net/v2/check_fb_sig?order=YM130402cygr_UTb42&app=30996ced018a2a5e& ...

随机推荐

  1. iOS - 开发一套代码多个app展示不同图标和名称

    引言 公司项目重构之后,有了相对比较完善的开发体系,首先git分支分为日常.预发.生产三个主要分支,开发阶段都在日常(daily)分支下开相应功能的feature分支,开发完再合并. 我的iOS工程需 ...

  2. python标准库和第三方库的区别

    1.python的标准库是随着pyhon安装的时候默认自带的库. 2.python的第三方库,需要下载后安装到python的安装目录下,不同的第三方库安装及使用方法不同. 3.它们调用方式是一样的,都 ...

  3. Java基础之理解封装,继承,多态三大特性

    目录 封装 继承 多态 封装 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 代码理解 publ ...

  4. poj 2125 Destroying The Graph 最小割+方案输出

    构图思路: 1.将所有顶点v拆成两个点, v1,v2 2.源点S与v1连边,容量为 W- 3.v2与汇点连边,容量为 W+ 4.对图中原边( a, b ), 连边 (a1,b2),容量为正无穷大 则该 ...

  5. slam学习资源

    从零开始学slam: http://blog.csdn.net/akunainiannian/article/details/45363731 史上最全的SLAM学习资料收集  http://www. ...

  6. SCSI共享磁盘

    服务器端: [root@scsi ~]# fdisk -l Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, ...

  7. 使用 Python 进行 socket 编程

    本文主要参考 https://docs.python.org/3/howto/sockets.html . 本文只讨论 STREAME(比如 TCP) INET(比如 IPv4) socket. 在多 ...

  8. related Field has invalid lookup: icontains 解决方法

    models.py 文件 # coding:utf8 from django.db import models class Book(models.Model):         name = mod ...

  9. TortoiseGit的使用

    TortoiseGit只是一个外壳而已,它调用的是msysgit,相当于msysgit的windows gui而已,如果喜欢用git命令行,那就不需要安装它. 所以要先安装msysgit(window ...

  10. mysql "order by" "distinct" "group by" "having"

    本文用到的表结构 create table stu( stu_id int auto_increment primary key, name ) not null, age smallint, cls ...