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& ...
随机推荐
- 【BZOJ5094】硬盘检测 概率
[BZOJ5094]硬盘检测 Description 很久很久以前,小Q买了一个大小为n单元的硬盘,并往里随机写入了n个32位无符号整数.因为时间过去太久,硬盘上的容量字眼早已模糊不清,小Q也早已忘记 ...
- flask跨域请求
跨域文件上传的时候,浏览器会自动发起一个 OPTIONS 方法到服务器,现在后台解决前端跨域解决前端跨域请求的问题 客户端发起的这个 OPTIONS 可以说是一个“预请求”,用于探测后续真正需要发起的 ...
- TFS二次开发系列索引
TFS二次开发11——标签(Label) TFS二次开发10——分组(Group)和成员(Member) TFS二次开发09——查看文件历史(QueryHistory) TFS二次开发08——分支(B ...
- 牛客网多校赛第九场A-circulant matrix【数论】
链接:https://www.nowcoder.com/acm/contest/147/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...
- ubuntu16.04下安装Eigen
请输入以下命令进行安装: sudo apt-get install libeigen3-dev 一个库由头文件和库文件组成.Eigen头文件的默认位置在 “usr/include/eigen3” 中. ...
- XTU 1260 - Determinant - [2017湘潭邀请赛A题(江苏省赛)][高斯消元法][快速幂和逆元]
是2017江苏省赛的第一题,当时在场上没做出来(废话,那个时候又不懂高斯消元怎么写……而且数论也学得一塌糊涂,现在回来补了) 省赛结束之后,题解pdf就出来了,一看题解,嗯……加一行再求逆矩阵从而得到 ...
- Oracle核心技术之 SQL TRACE
1.SQL TRACE说明: 参数类型 布尔型 缺省值 false 参数类别 动态 取值范围 True|false 2.类型 1)sql trace参数:alter system改变对全局进程影响,如 ...
- nginx处理问题笔记
1. 处理所有请求到单一入口 ( rewrite all requests to index.php with nginx ) 目前我们做开发一般都是单入口的,所以都会使用web服务器做重定向到入口 ...
- SpringBoot 统一响应格式
-Spring Boot返回数据及异常统一封装 -企业实战之spring项目<接口响应体格式统一封装> -Spring Boot fastjson替换jackson -java web项目 ...
- 对SQL SERVER数据类型理解最好的一篇文章
字符串前加N SQL SERVER中生成的语句中,字符串前加N,N 前缀必须是大写字母,是Unicode编码的意思. 一般来说,英文字符是一个字节组成,但是国际上的字太多了,因此就用两个字节来表示字符 ...