在做批量修改状态的时候,前端把所有修改或者没有修改的数据都传后端了,要求后端对这个数据进行处理, 如果是单表没有任何其他的逻辑操作其实不用找出来,我这边是需要 对启用的存redis,禁用的删除redis,故需要找出状态修改过的数据进行处理
public static void main(String[] args){
//批量修改状态 查找原数据与现在数据修改过的数据
List<RcsTopo> ysj=new ArrayList<>();
ysj.add(new RcsTopo("111",0L,"111"));
ysj.add(new RcsTopo("222",0L,"111"));
ysj.add(new RcsTopo("333",0L,"111"));
ysj.add(new RcsTopo("444",1L,"111"));
ysj.add(new RcsTopo("555",0L,"111"));
ysj.add(new RcsTopo("666",1L,"111"));
ysj.add(new RcsTopo("777",1L,"111"));
ysj.add(new RcsTopo("888",1L,"111"));
ysj.add(new RcsTopo("999",0L,"111"));
List<RcsTopo> xsj=new ArrayList<>();
xsj.add(new RcsTopo("111",1L,"111"));
xsj.add(new RcsTopo("222",1L,"111"));
xsj.add(new RcsTopo("333",0L,"111"));
xsj.add(new RcsTopo("444",0L,"111"));
xsj.add(new RcsTopo("555",0L,"111"));
xsj.add(new RcsTopo("666",0L,"111"));
xsj.add(new RcsTopo("777",0L,"111"));
xsj.add(new RcsTopo("888",1L,"111"));
xsj.add(new RcsTopo("999",0L,"111"));
List<String> dn=new ArrayList<>();//状态为0的数据
dn.add("333");
dn.add("444");
dn.add("555");
dn.add("666");
dn.add("777");
dn.add("999");
List<String> en=new ArrayList<>();//状态为1的数据
en.add("111");
en.add("222");
en.add("888");
String a[]={"111","222"};
String b[]={"333","444"};
String[] topoIds=(String[]) ArrayUtils.addAll(a,b);//合并成一个数组
//找出状态修改过的数据
List<RcsTopo> intersection = xsj.stream().filter(item ->(ysj.parallelStream().anyMatch(tm->item.getTopoId().equals(tm.getTopoId())&&tm.getStatus().intValue()!=item.getStatus().intValue()))).collect(toList());
intersection.forEach(s -> {
System.out.println(s.getTopoId()+"==="+s.getStatus());
});
List<String> eListNew = en.stream().filter(item ->(ysj.parallelStream().anyMatch(tm->item.equals(tm.getTopoId())&&tm.getStatus().intValue()!=1))).collect(toList());
List<String> dListNew = dn.stream().filter(item ->(ysj.parallelStream().anyMatch(tm->item.equals(tm.getTopoId())&&tm.getStatus().intValue()!=0))).collect(toList());
eListNew.forEach(s -> {
System.out.println("1===="+s);
});
dListNew.forEach(s -> {
System.out.println("0====="+s);
});
ArrayList<String> arrayList=new ArrayList();
String[] strings = new String[arrayList.size()];
arrayList.toArray(strings);
}