根据userId进行分组,userID为Long型
List<GxqFwzxFileitemedit> list = gxqFwzxFileitemeditService.selectFileItemAll(gxqFwzxFileitemedit);
*按照usrId进行分组*/
Map<Long,List<GxqFwzxFileitemedit>> groupBy = list.stream().collect(Collectors.groupingBy(GxqFwzxFileitemedit::getUserId));*/
/*List<GxqFwzxFileitemedit> listAll1 = new ArrayList<>();
/先根据fillDate进行分组,再进行userId分组/
List<GxqFwzxFileitemedit> list = gxqFwzxFileitemeditService.selectFileItemAll(gxqFwzxFileitemedit);
/*先根据fillDate进行分组,再进行userId分组*/
Map<Long, Map<String, List<GxqFwzxFileitemedit>>> groupBy = list.parallelStream().collect(Collectors.groupingBy(GxqFwzxFileitemedit::getUserId,Collectors.groupingBy(GxqFwzxFileitemedit::getFillDate)));
对分组数据进行遍历,存放listAll中
List<Map<String,Object>> listAll = new ArrayList<>();
for(Long key :groupBy.keySet()){
for(String fillDateKey:groupBy.get(key).keySet()){
Map<String,Object> map = new HashMap<>();
//sublFlag数据状态0-未提交、1-已提交(审核中)、2-驳回、3-通过
GxqFwzxFileitemedit gxqFwzxFileitem = groupBy.get(key).get(fillDateKey).get(0);
int sublFlag = gxqFwzxFileitem.getSublFlag();
Long userId = gxqFwzxFileitem.getUserId();
String userName = gxqFwzxFileitem.getUserName();
String fillDate = gxqFwzxFileitem.getFillDate();
int number = gxqFwzxFileitem.getNumber();
map.put("sublFlag", sublFlag);
map.put("userId", userId);
map.put("userName", userName);
map.put("fillDate", fillDate);
for(GxqFwzxFileitemedit editValue:groupBy.get(key).get(fillDateKey)){
Map fileValueMap = new HashMap();
//subl_flag状态为0-未提交的不展示
/*if(0 == editValue.getSublFlag()) {
break;
}*/
fileValueMap.put("fileValue",editValue.getFileValue());
fileValueMap.put("fileType",editValue.getFileType());
/*根据类型对tabIdOrAppeId进行赋值*/
if(Constants.TABLE_TYPE.equals(editValue.getFileType())){
fileValueMap.put("tabIdOrAppeId", editValue.getDetailTabId());
}else if(Constants.APPENDIX_TYPE.equals(editValue.getFileType())) {
fileValueMap.put("tabIdOrAppeId", editValue.getAppendixId());
}else{
fileValueMap.put("tabIdOrAppeId","");
}
map.put(editValue.getFileName(),fileValueMap);
}
listAll.add(map);
}
}