|
|
@ -39,8 +39,9 @@ public class ClockingInService implements IClockingInService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<CClockingInVo.ClockingInInfo> queryClockingIn(CClockingInDto.QueryClockingIn params, Long userId) { |
|
|
|
//创建时间
|
|
|
|
//返回值
|
|
|
|
List<CClockingInVo.ClockingInInfo> list = new ArrayList<>(); |
|
|
|
//创建时间
|
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
Date startTimeParam = new Date(params.getStartTime()); |
|
|
|
Date endTimeParam = new Date(params.getEndTime()); |
|
|
@ -62,38 +63,53 @@ public class ClockingInService implements IClockingInService { |
|
|
|
list.add(end); |
|
|
|
|
|
|
|
//添加成员信息
|
|
|
|
//1.查询全部
|
|
|
|
List<Long> memberIdList = new ArrayList<>(); |
|
|
|
Long userOfMemberId = memberDao.findUserOfMemberId(params.getProjectId(), userId); |
|
|
|
memberIdList.add(userOfMemberId); |
|
|
|
ProMember member = memberDao.selectByPrimaryKey(userOfMemberId); |
|
|
|
List<CClockingInVo.ClockRecord> clockRecordList = memberDao.queryMembersOfClock(params.getProjectId(),userOfMemberId); |
|
|
|
memberIdList.addAll(clockRecordList.stream().map(CClockingInVo.ClockRecord::getMemberId).collect(Collectors.toList())); |
|
|
|
for (CClockingInVo.ClockingInInfo clockingInInfo : list) { |
|
|
|
CClockingInVo.ClockRecord clockRecord = new CClockingInVo.ClockRecord(); |
|
|
|
clockRecord.setMemberId(member.getId()); |
|
|
|
clockRecord.setMemberName(member.getName()); |
|
|
|
clockingInInfo.getRecordList().add(clockRecord); |
|
|
|
clockingInInfo.getRecordList().addAll(clockRecordList); |
|
|
|
if (CollectionUtil.isEmpty(params.getMemberIdList())){ |
|
|
|
Long userOfMemberId = memberDao.findUserOfMemberId(params.getProjectId(), userId); |
|
|
|
memberIdList.add(userOfMemberId); |
|
|
|
ProMember member = memberDao.selectByPrimaryKey(userOfMemberId); |
|
|
|
List<CClockingInVo.ClockRecord> clockRecordList = memberDao.queryMembersOfClock(params.getProjectId(),userOfMemberId); |
|
|
|
memberIdList.addAll(clockRecordList.stream().map(CClockingInVo.ClockRecord::getMemberId).collect(Collectors.toList())); |
|
|
|
for (CClockingInVo.ClockingInInfo clockingInInfo : list) { |
|
|
|
CClockingInVo.ClockRecord clockRecord = new CClockingInVo.ClockRecord(); |
|
|
|
clockRecord.setMemberId(member.getId()); |
|
|
|
clockRecord.setMemberName(member.getName()); |
|
|
|
clockingInInfo.getRecordList().add(clockRecord); |
|
|
|
for (CClockingInVo.ClockRecord record : clockRecordList) { |
|
|
|
CClockingInVo.ClockRecord otherClockRecord = new CClockingInVo.ClockRecord(); |
|
|
|
otherClockRecord.setMemberId(record.getMemberId()); |
|
|
|
otherClockRecord.setMemberName(record.getMemberName()); |
|
|
|
clockingInInfo.getRecordList().add(otherClockRecord); |
|
|
|
} |
|
|
|
} |
|
|
|
}else { |
|
|
|
//2.筛选成员
|
|
|
|
List<CClockingInVo.ClockRecord> clockRecordList = memberDao.queryMemberByIdList(params.getMemberIdList()); |
|
|
|
memberIdList.addAll(clockRecordList.stream().map(CClockingInVo.ClockRecord::getMemberId).collect(Collectors.toList())); |
|
|
|
for (CClockingInVo.ClockingInInfo clockingInInfo : list) { |
|
|
|
for (CClockingInVo.ClockRecord clockRecord : clockRecordList) { |
|
|
|
CClockingInVo.ClockRecord filterRecord = new CClockingInVo.ClockRecord(); |
|
|
|
filterRecord.setMemberId(clockRecord.getId()); |
|
|
|
filterRecord.setMemberName(clockRecord.getMemberName()); |
|
|
|
clockingInInfo.getRecordList().add(filterRecord); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
List<CClockingInVo.ClockingInInfo> newList = list.stream().distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
//查询所有成员打卡记录
|
|
|
|
List<CClockingInVo.ClockRecord> clockRecords = clockingInDao.queryByMemberId(memberIdList); |
|
|
|
if(CollectionUtil.isNotEmpty(clockRecords)) { |
|
|
|
for (CClockingInVo.ClockRecord clockRecord : clockRecords) { |
|
|
|
String morning = format.format(new Date(clockRecord.getMorning())); |
|
|
|
for (CClockingInVo.ClockingInInfo clockingInInfo : newList) { |
|
|
|
if (clockingInInfo.getDateTime().equals(morning)) { |
|
|
|
for (CClockingInVo.ClockRecord record : clockingInInfo.getRecordList()) { |
|
|
|
if (clockRecord.getMemberId().equals(record.getMemberId())){ |
|
|
|
BeanUtil.copyProperties(clockRecord,record); |
|
|
|
} |
|
|
|
} |
|
|
|
for (CClockingInVo.ClockingInInfo clockingInInfo2 : list) { |
|
|
|
for (CClockingInVo.ClockRecord clockRecord : clockingInInfo2.getRecordList()) { |
|
|
|
for (CClockingInVo.ClockRecord record : clockRecords) { |
|
|
|
if (format.format(new Date(record.getMorning())).equals(clockingInInfo2.getDateTime()) && clockRecord.getMemberId().equals(record.getMemberId())) { |
|
|
|
clockRecord.setCheckerId(record.getCheckerId()); |
|
|
|
clockRecord.setCheckerName(record.getCheckerName()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return newList; |
|
|
|
return list.stream().distinct().collect(Collectors.toList()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|