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. nginx 二级域名跳转

    server { listen ; server_name m.aaoo.cn; #charset koi8-r; #access_log logs/host.access.log main; rew ...

  2. kernel中文件的读写操作可以使用vfs_read()和vfs_write

    需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...

  3. pip freeze

    总结: 1.输出安装的包信息,并在另一个环境快速安装 Generate output suitable for a requirements file. $ pip freeze docutils== ...

  4. Service 的 onStartCommand(Intent, int, int) 返回值

    (1)START_NOT_STICKY If the system kills the service after onStartCommand() returns, do not recreate ...

  5. PHP移动互联网开发笔记(6)——MySQL数据库基础回想

    近期看了一些架构方面的资料.可是发现基础知识都不怎么坚固,接下来的一段时间.我会定期总结基础知识. 一.数据类型   1.整型   数据类型 存储空间 说明 取值范围 TINYINT 1字节 很小的整 ...

  6. SQLServer和MySQL job和 event定时器的差别

    SQLServer和MySQL job和 event定时器的差别

  7. Jedis 对 Redis 的操作详解

    1. JedisUtil2. 键操作3. 字符串操作4. 字节串4. 整数和浮点数5. 列表6. 集合(Set)7. 散列8. 排序sort 本篇主要阐述Jedis对redis的五大类型的操作:字符串 ...

  8. 部署MyEclipse及Tomcat服务器

     修改MySQL文件工程密码 Tomcat6.12\webapps\SmsService\WEB-INF\applicationContext.xml目录下的数据库密码 <property na ...

  9. <转>MySQL临时表的简单用法

    当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询. ...

  10. INT_MAX和INT_MIN注意事项

    版权声明:转载请注明出处 http://blog.csdn.net/TwT520Ly https://blog.csdn.net/TwT520Ly/article/details/53038345 I ...