Commit 8b6bffa1 authored by 李丛阳's avatar 李丛阳

dlsw grid

parent e6aeff22
......@@ -7,6 +7,7 @@ import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.rcisoft.core.model.CommonPageGridModel;
import org.rcisoft.core.model.DlswPageGridModel;
import org.rcisoft.core.model.GridModel;
import org.rcisoft.core.model.PageInfo;
......@@ -38,7 +39,8 @@ public class PageUtil<T> extends PageInfo<T> implements Serializable {
}
private void setPageInfo(PageUtil<T> paginationUtility, PageInfo<T> pageInfo) {
/*通用属性*/
private void setCommonProperties(PageUtil<T> paginationUtility, PageInfo<T> pageInfo){
paginationUtility.setEndRow(pageInfo.getEndRow());
paginationUtility.setFirstPage(pageInfo.getFirstPage());
paginationUtility.setHasNextPage(pageInfo.isHasNextPage());
......@@ -58,9 +60,32 @@ public class PageUtil<T> extends PageInfo<T> implements Serializable {
paginationUtility.setStartRow(pageInfo.getStartRow());
paginationUtility.setList(pageInfo.getList());
paginationUtility.setTotal(pageInfo.getTotal());
}
/**
* 设置通用 pageInfo
* @param paginationUtility
* @param pageInfo
*/
private void setCommonPageInfo(PageUtil<T> paginationUtility, PageInfo<T> pageInfo) {
this.setCommonProperties(paginationUtility,pageInfo);
paginationUtility.setGridModel(new CommonPageGridModel(paginationUtility));
}
/**
* 设置dlsw pageInfo
* @param paginationUtility
* @param pageInfo
*/
private void setDlswPageInfo(PageUtil paginationUtility, PageInfo pageInfo) {
this.setCommonProperties(paginationUtility,pageInfo);
GridModel grid = paginationUtility.getGridModel();
if(grid instanceof DlswPageGridModel){
DlswPageGridModel dlswPageGridModel = (DlswPageGridModel)grid;
dlswPageGridModel.setPageData(paginationUtility);
}
}
/**
* 环绕aop service.*ByPagination 分页拦截
* @param proceedingJoinPoint
......@@ -73,7 +98,13 @@ public class PageUtil<T> extends PageInfo<T> implements Serializable {
try {
List e = (List)proceedingJoinPoint.proceed();
PageInfo pageInfo = new PageInfo(e);
this.setPageInfo(paginationUtility, pageInfo);
/*dlsw gridModel*/
if(null != paginationUtility.getGridModel() &&
paginationUtility.getGridModel() instanceof DlswPageGridModel)
this.setDlswPageInfo(paginationUtility, pageInfo);
/*common gridModel*/
else
this.setCommonPageInfo(paginationUtility, pageInfo);
return e;
} catch (Throwable var5) {
log.error(var5.getMessage());
......
package org.rcisoft.core.controller;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.rcisoft.core.aop.PageUtil;
import org.rcisoft.core.model.CommonPageGridModel;
import org.rcisoft.core.model.DlswPageGridModel;
import org.rcisoft.core.model.GridModel;
import org.rcisoft.core.util.DlswPageGridUtil;
import org.springframework.web.bind.annotation.ModelAttribute;
import javax.servlet.http.HttpServletRequest;
......@@ -14,7 +18,7 @@ import javax.servlet.http.HttpServletRequest;
* Time: 上午10:52
* description: 分页初始化
*/
@Slf4j
public class PaginationController<T> extends ResponseController {
protected static final String PAGINATIONKEY = "pagination";
......@@ -36,8 +40,21 @@ public class PaginationController<T> extends ResponseController {
}
@ModelAttribute
private void setPagnationAttribute(HttpServletRequest request, Integer rows, Integer page, String sort) {
private void setPagnationAttribute(HttpServletRequest request,String gridPager, Integer rows, Integer page, String sort) {
PageUtil _paginationUtility = new PageUtil();
/*dlsw gridModel*/
if(StringUtils.isNotBlank(gridPager)) {
try {
DlswPageGridModel gridModel = DlswPageGridUtil.transform(gridPager);
_paginationUtility.setGridModel(gridModel);
_paginationUtility.setPageNum(gridModel.getNowPage());
_paginationUtility.setPageSize(gridModel.getPageSize());
request.setAttribute(PAGINATIONKEY, _paginationUtility);
return;
} catch (Exception e) {
log.error(e.getMessage());
}
}
if(rows != null && page != null && sort != null ) {
_paginationUtility.setPageNum(page.intValue());
_paginationUtility.setPageSize(rows.intValue());
......@@ -53,8 +70,8 @@ public class PaginationController<T> extends ResponseController {
_paginationUtility.setOrderBy(sort);
}
else{
_paginationUtility.setPageNum(INIT_ROWS);
_paginationUtility.setPageSize(INIT_PAGE);
_paginationUtility.setPageNum(INIT_PAGE);
_paginationUtility.setPageSize(INIT_ROWS);
}
request.setAttribute(PAGINATIONKEY, _paginationUtility);
......
package org.rcisoft.core.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.rcisoft.core.aop.PageUtil;
import org.rcisoft.core.model.dlsw.Column;
import org.rcisoft.core.model.dlsw.Condition;
import org.rcisoft.core.model.dlsw.Sort;
import java.util.List;
import java.util.Map;
/**
* service dlsw grid
* Created by lcy on 18/3/13.
*/
@Data
public class DlswPageGridModel implements GridModel {
private static final long serialVersionUID = -13317137312873392L;
/**
* 是否出错
*/
@JsonProperty(value = "isSuccess")
private boolean isSuccess;
/**
* 每页显示条数
*/
private int pageSize;
/**
* 开始记录数
*/
private int startRecord;
/**
* 当前页数
*/
private int nowPage;
/**
* 记录总数
*/
private long recordCount;
/**
* 总页数
*/
private int pageCount;
/**
* 参数列表
*/
private Map<String, Object> parameters;
/**
* 快速查询参数列表
*/
private Map<String, Object> fastQueryParameters;
/**
* 高级查询列表
*/
private List<Condition> advanceQueryConditions;
/**
* 高级排序列表
*/
private List<Sort> advanceQuerySorts;
/**
* 显示数据集
*/
//private List<Map<String, Object>> exhibitDatas;
private List<Object> exhibitDatas;
/**
* 是否导出:1-是,0-否
*/
@JsonProperty(value = "isExport")
private boolean isExport;
/**
* 导出类型,支持excel、pdf、txt、cvs
*/
private String exportType;
/**
* 导出文件名
*/
private String exportFileName;
/**
* 导出列
*/
private List<Column> exportColumns;
/**
* 全部数据导出
*/
private boolean exportAllData;
/**
* 导出数据是否已被加工
*/
private boolean exportDataIsProcessed;
/**
* 导出数据
*/
private List<Map<String, Object>> exportDatas;
/**
* 复制数据
* @param paginationUtility
*/
public void setPageData(PageUtil paginationUtility) {
this.exhibitDatas = paginationUtility.getList();
this.isSuccess = true;
this.nowPage = paginationUtility.getPageNum();
this.pageSize = paginationUtility.getPageSize();
this.pageCount = paginationUtility.getPages();
this.recordCount = paginationUtility.getTotal();
this.startRecord = paginationUtility.getStartRow();
}
}
package org.rcisoft.core.model.dlsw;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Map;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Column implements Serializable {
private static final long serialVersionUID = 4593380846718461149L;
/**
* 编号
*/
private String id;
/**
* 是否参与高级查询
*/
private String search;
/**
* 是否作为导出列导出[default:true]
*/
private boolean export = true;
/**
* 是否作为打印列打印[default:true]
*/
private boolean print = true;
/**
* 是否作为扩展列隐藏备用[default:true(对于自定义的复选或相关操作内容,请设置为false以免数据冲突)]
*/
private boolean extra = true;
/**
* 显示的列名
*/
private String title;
/**
* 数据类型
*/
private String type;
/**
* 格式化
*/
private String format;
/**
* 原始数据类型
*/
private String otype;
/**
* 原始格式
*/
private String oformat;
/**
* 码表映射,用于高级查询及显示
*/
private Map<String, Object> codeTable;
/**
* 列样式
*/
private String columnStyle;
/**
* 列样式表
*/
private String columnClass;
/**
* 列头样式
*/
private String headerStyle;
/**
* 列头样式表
*/
private String headerClass;
/**
* 彻底隐藏
*/
private boolean hide = false;
/**
* 隐藏类别
*/
private String hideType;
/**
* 快速查询
*/
private boolean fastQuery;
/**
* 快速查询类别
*/
private String fastQueryType;
/**
* 高级查询
*/
private boolean advanceQuery;
/**
* 回调方法,参数:record value
*/
private String resolution;
}
package org.rcisoft.core.model.dlsw;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Condition implements Serializable {
private static final long serialVersionUID = -811804260626675487L;
/**
* 左括号
*/
private String left_parentheses;
/**
* 字段名称
*/
private String condition_field;
/**
* 条件
*/
private String condition_type;
/**
* 值
*/
private String condition_value;
/**
* 右括号
*/
private String right_parentheses;
/**
* 查询逻辑
*/
private String logic;
}
package org.rcisoft.core.model.dlsw;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Sort implements Serializable {
private static final long serialVersionUID = 6144460159065003975L;
/**
* 字段
*/
private String sort_field;
/**
* 排序逻辑
*/
private String sort_logic;
}
package org.rcisoft.core.util;
import com.alibaba.fastjson.JSONObject;
import org.rcisoft.core.model.DlswPageGridModel;
import org.rcisoft.core.model.dlsw.Column;
import org.rcisoft.core.model.dlsw.Condition;
import org.rcisoft.core.model.dlsw.Sort;
import java.util.HashMap;
import java.util.Map;
/**
* Created by lcy on 18/3/13.
*
* product DlswPageGridModel
*/
@SuppressWarnings("rawtypes")
public class DlswPageGridUtil {
/**
* 将JSON对象映射为Pager对象
* @param jsonStr 原JSON对象
* @throws Exception
*/
public static DlswPageGridModel transform(String jsonStr) throws Exception{
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("parameters", Map.class);
classMap.put("fastQueryParameters", Map.class);
classMap.put("advanceQueryConditions", Condition.class);
classMap.put("advanceQuerySorts", Sort.class);
classMap.put("exhibitDatas", Map.class);
classMap.put("exportColumns", Column.class);
classMap.put("exportDatas", Map.class);
DlswPageGridModel pager = (DlswPageGridModel)JSONObject.parseObject(jsonStr, DlswPageGridModel.class);
return pager;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment