java后台获取和js拼接展示信息
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拼接展示信息的更多相关文章
- 微信小程序:java后台获取openId
一.功能描述 openId是某个微信账户对应某个小程序或者公众号的唯一标识,但openId必须经过后台解密才能获取(之前实现过前台解密,可是由于微信小程序的种种限制,前台解密无法在小程序发布后使用) ...
- java后台获取Access_token的工具方法
本方法主要通过java后台控制来获取Access_token,需要你已经知道自己的ID跟密码 因为微信的权限设置大概每天可以获取两千条,每条有效时间为2小时 /** * 输入自己的id跟密码,获取微信 ...
- 你不可错过的二维码生成与解析-java后台与前端js都有
1.二维码分类 二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型. 线性堆叠式二维码 编码原理: 建立在一维条码基础之上,按需要堆积成两行或多行. 图示: 矩阵式二维码 最常用编 ...
- java后台获取微信小程序openid
一.jar包准备 1.在网盘下载 链接:https://pan.baidu.com/s/15HAAWOg_yn768g4s9IrcPg 提取码:hgj0 二.在pom文件中添加依赖 1.将外部的引入的 ...
- Base64 JAVA后台编码与JS前台解码(解决中文乱码问题)
中文通过Java后台进行Base64编码后传到前台,通过JS进行Base64解码时会出现中文乱码的问题,被这个问题也是困扰了几天,使用jquery.base64.js只能转码非中文字符,经过搜集各种方 ...
- Java Scala获取所有注解的类信息
要想获取使用指定注解的类信息,可借助工具: org.reflections.Reflections 此工具将Java反射进行了高级封装,Reflections 通过扫描 classpath,索引元数据 ...
- java反射获取注解并拼接sql语句
先建两个注解 分别为 Table 和 Column package com.hk.test; import java.lang.annotation.ElementType; import java. ...
- java后台获取国际化资源文件
//current属性,由于此属性只做赋值操作,不做取值操作,因此没有get方法 private Locale current; public void setCurrent(Locale cur) ...
- java后台获取URL带参demo
URL:http://aos.wall.youmi.net/v2/check_fb_sig?order=YM130402cygr_UTb42&app=30996ced018a2a5e& ...
随机推荐
- RabbitMQ安装详解(centos6.8)(转自:http://www.cnblogs.com/zhen-rh/p/6862350.html)
1.下载rabbitmq安装包 2.安装erlang a.安装Erlang Solutions仓库到你的系统(目的在于让你可以使用yum安装到最新版本的erlang, 如果不设置, yum安装的erl ...
- Python开发环境搭建方法简述
先插入一条广告,博主新开了一家淘宝店,经营自己纯手工做的发饰,新店开业,只为信誉!需要的亲们可以光顾一下!谢谢大家的支持!店名: 小鱼尼莫手工饰品店经营: 发饰.头花.发夹.耳环等(手工制作)网店: ...
- 洛谷P2414 阿狸的打字机【AC自动机】【fail树】【dfs序】【树状数组】
居然真的遇上了这种蔡队题.瑟瑟发抖. 题目背景 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机. 题目描述 打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母.经阿 ...
- Scikit-learn技巧(拓展)总结
Scikit-learn技巧(拓展)总结 本文转载自:http://www.jianshu.com/p/516f009c0875 最近看了<Python数据挖掘入门与实战>,网上有说翻译地 ...
- HDU 6278 - Just h-index - [莫队算法+树状数组+二分][2018JSCPC江苏省赛C题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6278 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...
- JSTL 学习
对于页面访问数据的统计,可以使用内置对象的相应方法进行计数工作,这个对象要在jsp对象的整个生命周期中setAttribute()和getAttribute()application.setAttri ...
- CCCC L2-018. 多项式A除以B 直接上map,然后stack处理输出
https://www.patest.cn/contests/gplt/L2-018 题意:模拟多项式除法. 题解:短除法,初中奥数老师,高中数学老师,高数老师都讲过2333. 模拟之前,关于保存 多 ...
- 20144306《网络对抗》MAL_免杀原理与实践
一.基础问题回答 1.杀软是如何检测出恶意代码的? (1)特征码:类似于人的生物特征,恶意代码可能会包含一段或多端数据能代表其特征.杀软一般会对文件内容进行静态扫描,将文件内容与特征库进行匹配,来检测 ...
- window10 telnet的启用
(1) window+R打开运行窗口,输入control,如图: (2) 点击类别改成大图标: 如图所示: 然后点击程序和功能. (3) 然后依次点击:启用或者关闭windows功能->teln ...
- LightOj 1104 - Birthday Paradox(生日悖论概率)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1104 题意:一年365天,在有23个人的情况下,这23个人中有两个人生日相同的概率是大 ...