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

添加若尔盖配置pom参数

parent 581cce0d
package com.mortals.xhx.module.attendance.web; package com.mortals.xhx.module.attendance.web;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -50,6 +51,9 @@ import java.io.IOException; ...@@ -50,6 +51,9 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -338,19 +342,30 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -338,19 +342,30 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
super.doListBefore(query, model, context); 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 @Override
protected int doListAfter(AttendanceRecordEntity query, Map<String, Object> model, Context context) throws AppException { protected int doListAfter(AttendanceRecordEntity query, Map<String, Object> model, Context context) throws AppException {
List<AttendanceRecordEntity> list = (List<AttendanceRecordEntity>) model.get(KEY_RESULT_DATA); List<AttendanceRecordEntity> list = (List<AttendanceRecordEntity>) model.get(KEY_RESULT_DATA);
//求出列表中最多detail 的 添加动态列
List<AttendanceRecordDetailEntity> collect = list.parallelStream() List<AttendanceRecordDetailEntity> collect = list.parallelStream()
.flatMap(item -> item.getAttendanceRecordDetailList().stream()) .flatMap(item -> item.getAttendanceRecordDetailList().stream())
.distinct() .filter(distinctByKey(f->f.getOrderNum()))
.sorted(Comparator.comparingInt(AttendanceRecordDetailEntity::getOrderNum)) .sorted(Comparator.comparingInt(AttendanceRecordDetailEntity::getOrderNum))
.collect(Collectors.toList()); .collect(Collectors.toList());
//list.parallelStream().collect(Collectors.groupingBy())
List<AttDsyncColumn> dsyncColumns = new ArrayList<>(); 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 attDsyncColumn = new AttDsyncColumn();
attDsyncColumn.setName(String.format("上班%s打卡时间", i)); attDsyncColumn.setName(String.format("上班%s打卡时间", i));
attDsyncColumn.setProperty("goWorkDate"); attDsyncColumn.setProperty("goWorkDate");
...@@ -374,8 +389,8 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -374,8 +389,8 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
attDsyncColumn.setProperty("offWorkResult"); attDsyncColumn.setProperty("offWorkResult");
attDsyncColumn.setOrderNum(i); attDsyncColumn.setOrderNum(i);
dsyncColumns.add(attDsyncColumn); dsyncColumns.add(attDsyncColumn);
} }*/
/*
collect.forEach(item -> { collect.forEach(item -> {
AttDsyncColumn attDsyncColumn = new AttDsyncColumn(); AttDsyncColumn attDsyncColumn = new AttDsyncColumn();
attDsyncColumn.setName(String.format("上班%s打卡时间", item.getOrderNum())); attDsyncColumn.setName(String.format("上班%s打卡时间", item.getOrderNum()));
...@@ -400,7 +415,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle ...@@ -400,7 +415,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
attDsyncColumn.setProperty("offWorkResult"); attDsyncColumn.setProperty("offWorkResult");
attDsyncColumn.setOrderNum(item.getOrderNum()); attDsyncColumn.setOrderNum(item.getOrderNum());
dsyncColumns.add(attDsyncColumn); dsyncColumns.add(attDsyncColumn);
});*/ });
Set<Integer> dsyncSet = dsyncColumns.stream().map(i -> i.getOrderNum()).collect(Collectors.toSet()); Set<Integer> dsyncSet = dsyncColumns.stream().map(i -> i.getOrderNum()).collect(Collectors.toSet());
//填充空的detail 对象 //填充空的detail 对象
Iterator<AttendanceRecordEntity> iterator = list.iterator(); 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