|
@@ -17,6 +17,7 @@ import com.usky.iot.service.vo.ProjectWorkTimeVO;
|
|
|
import com.usky.iot.service.vo.UserWorkTimeVO;
|
|
|
import com.usky.iot.service.vo.WorkHoursStatisticsVO;
|
|
|
import com.usky.system.domain.SysUser;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -176,28 +177,34 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
d.setCreateBy(e.getNickName());
|
|
|
}
|
|
|
}
|
|
|
- List<Long> ids = Optional.ofNullable(d.getCcTo())
|
|
|
- .map(ccTo -> Arrays.stream(ccTo.split(","))
|
|
|
- .map(Long::parseLong)
|
|
|
- .collect(Collectors.toList()))
|
|
|
- .orElse(Collections.emptyList());
|
|
|
- List<SysUser> nickNameList = nickNames(ids);
|
|
|
- StringBuilder ccToBuilder = new StringBuilder();
|
|
|
- Set<Long> addedUserIds = new HashSet<>();
|
|
|
- for (Long id : ids) {
|
|
|
- for (SysUser user : nickNameList) {
|
|
|
- if (user.getUserId().equals(id) && !addedUserIds.contains(id)) {
|
|
|
- if (ccToBuilder.length() > 0) {
|
|
|
- ccToBuilder.append(", ");
|
|
|
+ List<Long> ids = null;
|
|
|
+ if (!d.getCcTo().isEmpty()) {
|
|
|
+ ids = Optional.ofNullable(d.getCcTo())
|
|
|
+ .map(ccTo -> Arrays.stream(ccTo.split(","))
|
|
|
+ .map(Long::parseLong)
|
|
|
+ .collect(Collectors.toList()))
|
|
|
+ .orElse(Collections.emptyList());
|
|
|
+ }
|
|
|
+ List<SysUser> nickNameList = null;
|
|
|
+ if (CollectionUtils.isNotEmpty(ids)) {
|
|
|
+ nickNameList = nickNames(ids);
|
|
|
+ StringBuilder ccToBuilder = new StringBuilder();
|
|
|
+ Set<Long> addedUserIds = new HashSet<>();
|
|
|
+ for (Long id : ids) {
|
|
|
+ for (SysUser user : nickNameList) {
|
|
|
+ if (user.getUserId().equals(id) && !addedUserIds.contains(id)) {
|
|
|
+ if (ccToBuilder.length() > 0) {
|
|
|
+ ccToBuilder.append(", ");
|
|
|
+ }
|
|
|
+ ccToBuilder.append(user.getNickName());
|
|
|
+ addedUserIds.add(id);
|
|
|
+ break;
|
|
|
}
|
|
|
- ccToBuilder.append(user.getNickName());
|
|
|
- addedUserIds.add(id);
|
|
|
- break;
|
|
|
}
|
|
|
}
|
|
|
+ String ccTo = ccToBuilder.toString();
|
|
|
+ d.setCcTo(ccTo);
|
|
|
}
|
|
|
- String ccTo = ccToBuilder.toString();
|
|
|
- d.setCcTo(ccTo);
|
|
|
}
|
|
|
return reportList;
|
|
|
}
|
|
@@ -226,7 +233,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
|
Long userId = SecurityUtils.getUserId();
|
|
|
List<Long> userIds = new ArrayList<>();
|
|
|
-
|
|
|
+ Page<PmWorkReport> page = new Page<>(pageNum, pageSize);
|
|
|
LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery();
|
|
|
contentLambdaQuery.select(PmWorkContent::getReportId, PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName)
|
|
|
.apply("report_id IN (SELECT id FROM pm_work_report WHERE tenant_id = '" + tenantId + "')")
|
|
@@ -257,7 +264,8 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
.in(PmWorkReport::getId, reportIds)
|
|
|
.orderByDesc(PmWorkReport::getCreateTime);
|
|
|
|
|
|
- List<PmWorkReport> reportList = pmWorkReportMapper.selectList(reportQuery);
|
|
|
+ IPage<PmWorkReport> reportPage = pmWorkReportMapper.selectPage(new Page<>(pageNum, pageSize), reportQuery);
|
|
|
+ List<PmWorkReport> reportList = reportPage.getRecords();
|
|
|
|
|
|
LambdaQueryWrapper<PmReceive> statusQuery = Wrappers.lambdaQuery();
|
|
|
statusQuery.select(PmReceive::getReportId, PmReceive::getReadFlag)
|
|
@@ -267,34 +275,29 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
|
|
|
List<PmReceive> receiveList = pmReceiveMapper.selectList(statusQuery);
|
|
|
|
|
|
- for (PmWorkReport c : reportList) {
|
|
|
- List<PmWorkContent> contents = new ArrayList<>();
|
|
|
- for (PmWorkContent b : pmWorkContentList) {
|
|
|
- if (b.getReportId().equals(c.getId())) {
|
|
|
- contents.add(b);
|
|
|
- }
|
|
|
- }
|
|
|
- c.setWorkContents(contents);
|
|
|
- userIds.add(c.getSubmitterId());
|
|
|
- if (!receiveList.isEmpty()) {
|
|
|
- for (PmReceive receive : receiveList) {
|
|
|
- if (receive.getReportId().equals(c.getId())) {
|
|
|
- c.setReadFlag(receive.getReadFlag());
|
|
|
- }
|
|
|
- }
|
|
|
+ Map<Integer, Integer> reportReadFlags = receiveList.stream()
|
|
|
+ .collect(Collectors.toMap(PmReceive::getReportId, PmReceive::getReadFlag));
|
|
|
+
|
|
|
+ reportList.forEach(report -> {
|
|
|
+ List<PmWorkContent> contents = pmWorkContentList.stream()
|
|
|
+ .filter(content -> content.getReportId().equals(report.getId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ report.setWorkContents(contents);
|
|
|
+ userIds.add(report.getSubmitterId());
|
|
|
+ if (reportReadFlags.containsKey(report.getId())) {
|
|
|
+ report.setReadFlag(reportReadFlags.get(report.getId()));
|
|
|
}
|
|
|
- }
|
|
|
+ });
|
|
|
|
|
|
List<SysUser> nickNames = nickNames(userIds);
|
|
|
- for (PmWorkReport d : reportList) {
|
|
|
- for (SysUser e : nickNames) {
|
|
|
- if (e.getUserId().equals(d.getSubmitterId())) {
|
|
|
- d.setCreateBy(e.getNickName());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ Map<Long, String> userNicknameMap = nickNames.stream()
|
|
|
+ .collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName));
|
|
|
+
|
|
|
+ reportList.forEach(report -> {
|
|
|
+ report.setCreateBy(userNicknameMap.get(report.getSubmitterId()));
|
|
|
+ });
|
|
|
|
|
|
- return new CommonPage<>(reportList, reportList.size(), pageSize, pageNum);
|
|
|
+ return new CommonPage<>(reportList, reportPage.getTotal(), pageSize, pageNum);
|
|
|
}
|
|
|
|
|
|
|