菜鸟求解 activiti 分页功能 谢谢

言午琅 发布于 2018/11/27 15:32
阅读 38
收藏 0

从网上找的一个项目练手就是进存销系统的单据审核功能

@RequestMapping(value = "danju", method = RequestMethod.GET)
    @ResponseBody
    public Map<String,Object> dauju( JxcProductOrderXm jxcProductOrderXm){
        Subject sub = SecurityUtils.getSubject();
        Userxm user= (Userxm)sub.getSession().getAttribute("users");
        String userid = user.getId();//获取的登入人的id
        System.out.println("登入管理员的id:"+userid);
       /* jxcProductOrderXm.setId(userid);*/
        Map<String,Object> map=new HashMap<>();
          List<JxcProductOrderXm> list=new ArrayList<>();

        //根据管理员id,查询ru_task表的所有数据(查询当前管理员有多少待审核的单据)
        //taskAssignee:查询ru_task表的Assignee字段
        List<Task> tasklist = taskService.createTaskQuery().taskAssignee(userid).list();//list()代表查询全部

        for (Task task : tasklist) {
            //遍历ask 获取每一个task的流程实例id
            String pid = task.getProcessInstanceId();
            //3.根据流程实例id,获取流程实例数据
            //3,singleResult()查询一条数据
            ProcessInstance p = runtimeService.createProcessInstanceQuery()
                    .processInstanceId(pid).singleResult();
            //4.获取流程实例里的businesskey(); 取出单据的id
            String roderid = p.getBusinessKey();
            System.out.println("单据的"+roderid);

            //根据单据的id 查询单据的信息
            JxcProductOrderXm order = billeService.findByid(roderid);
            String orders = order.getId();
             list.add(order);
            System.out.println("有哪些单据"+order);
        }
        for (JxcProductOrderXm productOrderXm : list) {
            String ida = productOrderXm.getId();//遍历出这个list里所有的单据id
            System.out.println("有哪些数据idssssss:"+ida);
            jxcProductOrderXm.setId(ida);然后添加到jxcProductOrderXm中的id属性中
        }
        map.put("rows",  billeService.findByids(jxcProductOrderXm));然后再一起传到数据库里查询,想想真傻 分页的数据也是跟这单据一条一次的分页啊,
        map.put("total",billeService.count(jxcProductOrderXm));
        return map;
    }
}

看网上的教程。JxcProductOrderXm order = billeService.findByid(roderid);他是根据单据的id查的,我是把查询出来的id和分页(分页的参数是从前台传进来的)的数据一起放入jxcProductOrderXm类里面然后去数据库里面查这 billeService.findByids(jxcProductOrderXm)这个就是去查询的,但是因为是根据roderid(单据的id,这是uuid生成的不重复)去查的要想查出所有的数据必然要循环   | 问题是| :我的分页的参数是在jxcProductOrderXm 然后单据的id也是在这里的,每次循环必然会分页一次导致我前台的分页不是1条 就是 全部一起刷出来,

  后来我就不用他这个方法去做不就是几张表关联查询根据管理员登入的id来查询单据有多少吗然后分页 ,一个sql语句然后一行代码的事情。

但是我是一起查询出所有数据然后分页,但我听别人讲要是有10000条数据我就查询很慢啊 ,那如果按他activiti提供的Service方法来做要怎么分页 我的分页参数和登入的id是在一个类里 每次查询id都会分页一次 ,现在做了项目才知道以前的基础的知识该怎么用 ,以前学都是囫囵吞枣,只知道是什么 ,该怎么用 用在什么地方做项目的时候就知道了,然后一脸懵逼,描述问题也不知道看的人明不明白,

最后总结问题就是 单据的id(每个单据的id都不同)和分页的数据全在一个类里,activiti的方法是要循环得出所有的单据id(我的想法是循环出所有的id用list(list听说有分页)接收然后循环遍历id出来保存到jxcProductOrderXm的id属性中),但这样还是每次根据id查询数据的时候还是会分页,怎么把数据全部查出来然后再分页啊难道要new一个jxcProductOrderXm,专门接收数据然后把分页的数据放进去??????????

前台用的现成bootstrap tabl

加载中
返回顶部
顶部