Commit 4ec3a27b authored by 赵啸非's avatar 赵啸非

添加若尔盖配置pom参数

parent 581cce0d
package com.mortals.xhx.module.attendance.web;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ReflectUtil;
import com.alibaba.fastjson.JSONObject;
......@@ -50,6 +51,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
......@@ -338,19 +342,30 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
super.doListBefore(query, model, context);
}
static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
//putIfAbsent方法添加键值对,如果map集合中没有该key对应的值,则直接添加,并返回null,如果已经存在对应的值,则依旧为原来的值。
//如果返回null表示添加数据成功(不重复),不重复(null==null :TRUE)
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
@Override
protected int doListAfter(AttendanceRecordEntity query, Map<String, Object> model, Context context) throws AppException {
List<AttendanceRecordEntity> list = (List<AttendanceRecordEntity>) model.get(KEY_RESULT_DATA);
//求出列表中最多detail 的 添加动态列
List<AttendanceRecordDetailEntity> collect = list.parallelStream()
.flatMap(item -> item.getAttendanceRecordDetailList().stream())
.distinct()
.filter(distinctByKey(f->f.getOrderNum()))
.sorted(Comparator.comparingInt(AttendanceRecordDetailEntity::getOrderNum))
.collect(Collectors.toList());
//list.parallelStream().collect(Collectors.groupingBy())
List<AttDsyncColumn> dsyncColumns = new ArrayList<>();
for (int i = 1; i <= collect.size(); i++) {
/* for (int i = 1; i <= collect.size(); i++) {
AttDsyncColumn attDsyncColumn = new AttDsyncColumn();
attDsyncColumn.setName(String.format("上班%s打卡时间", i));
attDsyncColumn.setProperty("goWorkDate");
......@@ -374,8 +389,8 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
attDsyncColumn.setProperty("offWorkResult");
attDsyncColumn.setOrderNum(i);
dsyncColumns.add(attDsyncColumn);
}
/*
}*/
collect.forEach(item -> {
AttDsyncColumn attDsyncColumn = new AttDsyncColumn();
attDsyncColumn.setName(String.format("上班%s打卡时间", item.getOrderNum()));
......@@ -400,7 +415,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
attDsyncColumn.setProperty("offWorkResult");
attDsyncColumn.setOrderNum(item.getOrderNum());
dsyncColumns.add(attDsyncColumn);
});*/
});
Set<Integer> dsyncSet = dsyncColumns.stream().map(i -> i.getOrderNum()).collect(Collectors.toSet());
//填充空的detail 对象
Iterator<AttendanceRecordEntity> iterator = list.iterator();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment