按照步骤顺序的步骤列表

2021-06-22  本文已影响0人  never_b6a7

问题描述:实现一个可以动态添加,修改,删除的步骤列表。 最后得到同一produc_id下的步骤列表(按照步骤顺序)
数据库设计: id,parent_id,product_id,step_name,create_time,update_time

// 转化List 根据ParentID 从小到大排序。如果ParentID一样则根据ID按照从大到小拍排序,方便取出第一个步骤 
    private List<Step> SortList( List<Step> origstep){
        List<Integer> re= new ArrayList<>();
        //origstep.stream().sorted().thenComparing(Live::getAppId, Comparator.reverseOrder()));
        List<Step> ss=new ArrayList<>();
        //origstep.sort(Comparator.comparing(Step::getId).thenComparing(Step::getParendid, Comparator.reverseOrder()));
        ss=origstep.stream().sorted(Comparator.comparing(Step::getParent_id).thenComparing(Step::getId, Comparator.reverseOrder())).collect(Collectors.toList());
        return ss;
    }
    // 查询步骤列表中PID为指定值的步骤列表,并且根据ID倒序排列
    private List<Step> getStepsByPid(Long pid,List<Step> origstep){
        List<Step> steps= new ArrayList<>();
        for (int i=0;i<origstep.size();i++){
            if (origstep.get(i).getParent_id()==pid){
                steps.add(origstep.get(i));
            }
        }
        List<Step> resteps=steps.stream().sorted(Comparator.comparing(Step::getId).reversed()).collect(Collectors.toList());
        return  resteps;
    }
    //按照步骤顺序排序,值写入到类成员变量 sort_step
    private  List<Step> StepsBySteps(Long id, List<Step> steps,List<Step> resteps){
        List<Step> sort_step =new ArrayList<>();
        List<Step> ree=new ArrayList<>();
        List<Step> res=SortList(steps);
        List<Step> ls=getStepsByPid(id,res);

        for(Step s:ls){
            if (ls.size()>0){
                //a.add( s.getId());
                resteps.add(s);
                System.out.println("ls>0"+s.getId());
                // return s.getId();
                StepsBySteps(s.getId(),res,resteps);
                //a.add(s.getId());
            }
            else {
                System.out.println("else"+res.get(0).getId());
                //a.add(res.get(0).getId());
                sort_step.add(s);
                return  resteps;
            }

        }
        return  resteps;
    }
上一篇 下一篇

猜你喜欢

热点阅读