一、分页样例代码


        
    try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
       ActionResult<List> result = new ActionResult<>();
       Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
       List ids = new ArrayList<>();
       EntityManager em = emc.get(RecordReadLog.class);
       CriteriaBuilder cb = em.getCriteriaBuilder();
       CriteriaQuery cq = cb.createQuery(String.class);
       Root root = cq.from(RecordReadLog.class);
    Predicate p = cb.equal(root.get(RecordReadLog_.idRecord),wi.getIdRecord().trim());
        
        if(wi.getStartTime() != null) {
            p = cb.and(p, cb.greaterThanOrEqualTo(root.get(RecordReadLog_.createTime), wi.getStartTime()));
        }
            
         if(wi.getEndTime()!= null) {
               p = cb.and(p, cb.lessThanOrEqualTo(root.get(RecordReadLog_.createTime), wi.getEndTime()));
        }
         
     
        Order order;
        String  sortField = wi.getSortField();
        String  sortType = wi.getSortType();

        if(!StringUtils.isBlank(sortField)) {
            if(sortType.equalsIgnoreCase("asc")) {
                 order =  cb.asc(root.get(sortField));
            }else {
                 order =  cb.desc(root.get(sortField));
            }
        }else {
               order =  cb.desc(root.get("createTime"));
        }
        
        cq.select(root.get(RecordReadLog_.id)).where(p).orderBy(order);
        TypedQuery<String> typedQuery = em.createQuery(cq);
         
         int pageIndex = (page-1)*size;
         int pageSize = size;
         typedQuery.setFirstResult(pageIndex);
         typedQuery.setMaxResults(pageSize);
         ids =  typedQuery.getResultList();
         
         TypedQuery<String> tqCount = em.createQuery( cq.select(root.get(RecordReadLog_.id)).where(p));
         List<String> allid = tqCount.getResultList();
         Long  tpsize =  (long) allid.size();
         
         CriteriaQuery<RecordReadLog> cqRecord = cb.createQuery(RecordReadLog.class);       
         Predicate pRecord = cb.isMember(root.get(RecordReadLog_.id), cb.literal(ids));
         Root<RecordReadLog> rootRecord = cqRecord.from(RecordReadLog.class);
         cqRecord.select(rootRecord).where(pRecord).orderBy(order);
         List<RecordReadLog> os = em.createQuery(cqRecord).getResultList();
        
        List<Wo> wos = Wo.copier.copy(os);
    
        result.setData(wos);
        result.setCount(tpsize);
        return result;
    }


二、过滤器url权限说明

Anonymous:匿名访问权限

Cipher:这个应该是服务器之间访问权限

Manager:管理员访问权限

User:普通用户放权权限


三、WI ,WO 说明

wi:接收接口输入参数对象

wo:接口返回参数对象


四、JPA

参考:https://www.w3cschool.cn/java/jpa-entitymanager.html


五、查找对应后台代码过程

1、http://服务器ip:20030/x_program_center/jest/list.html

image.png

2、点击打开具体模块的api界面:

image.png


  3、查看代码具体路径:

image.png

4.eclipse里查看具体代码

image.png

推荐文章:

服务集成-通过接口实现表单上传附件功能
2021-03-15
O2OA允许用户使用接口来完成对流程、表单以及数据的相关操作。本文介绍如何使用接口来实现表单上传附件的功能。这样便能将流程附件的管理与其他业务进行整合,更方便业
平台维护-流转中工作数据的查询、操作和管理
2021-02-26
O2OA提供平台数据维护应用,用于对平台应用类数据的维护操作,用户可以在应用市场选择安装平台维护应用。本篇主要简单介绍流转中工作数据的查询、操作和管理功能。
开发知识-平台中使用Druid数据库连接及监控
2021-04-26
一、o2oa数据库连接及使用原理o2oa使用阿里的druid与数据库进行连接及管控,在平台启动时druid管控了一个共享数据库连接池,默认的最大连接数是100(
论坛管理
2021-09-23
O2OA平台论坛管理为企业提供了一个员工公开交流的场所,经过配置后,论坛可以拥有丰富的栏目、版块,可以进行版块的权限设置,可见性,发贴回复权限设置。
OEM白标-如何修改平台中的Logo图标和文字
2021-08-23
一、修改标签页左上角o2专用图标需修改下图中的图标:修改位置在:o2server\servers\webServer目录下的favicon.ico文件,可以把此
Office在线协作使用手册
2022-01-04
@在线Word编辑@在线协同@开源办公系统@在线Excel编辑@在线Office @文档管理@文档协同O2OAOffice在线协作模块,可以让使用者完全基于浏览
流程设计-流程数据字典配置介绍
2021-03-23
O2OA提供数据字典来管理业务中的常用配置,让配置可以脱离业务代码或者配置项。本文主要介绍如何在O2OA中进行数据字典配置。
华为云服务器部署O2OA-麒麟操作系统
2021-05-25
@平台部署@O2OA部署@开源办公系统@华为云@麒麟操作系统 @鲲鹏主机环境@主机安全策略O2OA信息化系统开发支持公有云,私有云和混合云部署,也支持复杂的网络
考勤管理-新版
2021-09-06
@企业办公系统@考勤管理@开源办公系统@员工考勤@人事考勤O2OA考勤管理提供了一个通用的考勤管理,企业可以使用它实现手机打卡,数据导入,数据分析,数据统计。员
服务管理-前后端脚本的差异
2021-03-01
O2OA提供的服务管理中心可以让用户使用Javascript语言自由编写脚本的处理逻辑来实现与第三方的数据交互,数据同步以及系统内的数据处理等工作。本文主要介绍

results matching ""

    No results matching ""