|
@@ -65,6 +65,13 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
baseMapper.delete(deleteWrapper);
|
|
baseMapper.delete(deleteWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @description: 查询报告时间段
|
|
|
|
+ * @author: fu
|
|
|
|
+ * @date: 2024/8/7 17:48
|
|
|
|
+ * @param: [startDate, endDate]
|
|
|
|
+ * @return: java.util.List<java.lang.Integer>
|
|
|
|
+ **/
|
|
private List<Integer> reportDateQuery(String startDate, String endDate) {
|
|
private List<Integer> reportDateQuery(String startDate, String endDate) {
|
|
Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
|
Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
@@ -103,13 +110,20 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
return reportIds.stream().map(PmWorkReport::getId).collect(Collectors.toList());
|
|
return reportIds.stream().map(PmWorkReport::getId).collect(Collectors.toList());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @description: 查询我发出的报告
|
|
|
|
+ * @author: fu
|
|
|
|
+ * @date: 2024/8/7 17:48
|
|
|
|
+ * @param: []
|
|
|
|
+ * @return: java.util.List<java.lang.Integer>
|
|
|
|
+ **/
|
|
private List<Integer> sentOut() {
|
|
private List<Integer> sentOut() {
|
|
- String username = SecurityUtils.getUsername();
|
|
|
|
|
|
+ Long usernid = SecurityUtils.getUserId();
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery();
|
|
reportQuery.select(PmWorkReport::getId)
|
|
reportQuery.select(PmWorkReport::getId)
|
|
.eq(PmWorkReport::getTenantId, tenantId)
|
|
.eq(PmWorkReport::getTenantId, tenantId)
|
|
- .eq(PmWorkReport::getCreateBy, username);
|
|
|
|
|
|
+ .eq(PmWorkReport::getSubmitterId, usernid);
|
|
List<PmWorkReport> reportIds = pmWorkReportMapper.selectList(reportQuery);
|
|
List<PmWorkReport> reportIds = pmWorkReportMapper.selectList(reportQuery);
|
|
List<Integer> rIds = new ArrayList<>();
|
|
List<Integer> rIds = new ArrayList<>();
|
|
for (PmWorkReport report : reportIds) {
|
|
for (PmWorkReport report : reportIds) {
|
|
@@ -140,6 +154,13 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
return rIds;
|
|
return rIds;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @description: 查询项目id
|
|
|
|
+ * @author: fu
|
|
|
|
+ * @date: 2024/8/7 17:14
|
|
|
|
+ * @param: []
|
|
|
|
+ * @return: java.util.List<java.lang.Integer>
|
|
|
|
+ **/
|
|
private List<Integer> reportList(String projectName) {
|
|
private List<Integer> reportList(String projectName) {
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
LambdaQueryWrapper<PmWorkContent> projectQuery = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<PmWorkContent> projectQuery = Wrappers.lambdaQuery();
|
|
@@ -154,6 +175,13 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
return rIds;
|
|
return rIds;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @description: 查询项目
|
|
|
|
+ * @author: fu
|
|
|
|
+ * @date: 2024/8/7 17:14
|
|
|
|
+ * @param: [projectIds]
|
|
|
|
+ * @return: java.util.List<com.usky.iot.domain.PmProject>
|
|
|
|
+ **/
|
|
@Override
|
|
@Override
|
|
public List<PmWorkContent> projectQuery(String startDate, String endDate, String projectName, Integer projectAscription, Integer reportId) {
|
|
public List<PmWorkContent> projectQuery(String startDate, String endDate, String projectName, Integer projectAscription, Integer reportId) {
|
|
if (reportId != null && reportId != 0) {
|
|
if (reportId != null && reportId != 0) {
|
|
@@ -164,22 +192,18 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
List<PmWorkContent> pmWorkContentList = this.list(contentLambdaQuery);
|
|
List<PmWorkContent> pmWorkContentList = this.list(contentLambdaQuery);
|
|
return pmWorkContentList;
|
|
return pmWorkContentList;
|
|
}
|
|
}
|
|
- List<Integer> reportIds = reportDateQuery(startDate, endDate);
|
|
|
|
|
|
+ List<Integer> reportIds = new ArrayList<>();
|
|
|
|
+ if (StringUtils.isBlank(startDate) && StringUtils.isBlank(endDate)) {
|
|
|
|
+ reportIds = reportDateQuery(startDate, endDate);
|
|
|
|
+ }
|
|
List<Integer> receiveList = receive();
|
|
List<Integer> receiveList = receive();
|
|
List<Integer> sentOutList = sentOut();
|
|
List<Integer> sentOutList = sentOut();
|
|
List<Integer> headProjects = head();
|
|
List<Integer> headProjects = head();
|
|
- // LocalDate start = LocalDate.parse(startDate);
|
|
|
|
- // LocalDate end = LocalDate.parse(endDate);
|
|
|
|
- // String subQueryReports = "SELECT id FROM pm_work_report WHERE report_date BETWEEN '" + start + "' AND '" + end + "' AND tenant_id = " + SecurityUtils.getTenantId();
|
|
|
|
- // String subQueryReport = "SELECT id FROM pm_work_report WHERE FIND_IN_SET('" + SecurityUtils.getUserId() + "', cc_to) > 0 AND tenant_id = " + SecurityUtils.getTenantId();
|
|
|
|
- // String sentOut = "SELECT id FROM pm_work_report WHERE create_by = '" + SecurityUtils.getUsername() + "' AND tenant_id = " + SecurityUtils.getTenantId();
|
|
|
|
- // String subQueryProjects = "SELECT id FROM pm_project WHERE project_head = '" + SecurityUtils.getUserId() + "' AND tenant_id = " + SecurityUtils.getTenantId();
|
|
|
|
LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery();
|
|
contentLambdaQuery.select(PmWorkContent::getProjectId, PmWorkContent::getProjectName);
|
|
contentLambdaQuery.select(PmWorkContent::getProjectId, PmWorkContent::getProjectName);
|
|
if (!reportIds.isEmpty()) {
|
|
if (!reportIds.isEmpty()) {
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, reportIds);
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, reportIds);
|
|
}
|
|
}
|
|
- //.inSql(PmWorkContent::getReportId, subQueryReports);
|
|
|
|
if (StringUtils.isNotBlank(projectName)) {
|
|
if (StringUtils.isNotBlank(projectName)) {
|
|
contentLambdaQuery.like(PmWorkContent::getProjectName, projectName);
|
|
contentLambdaQuery.like(PmWorkContent::getProjectName, projectName);
|
|
}
|
|
}
|
|
@@ -188,15 +212,12 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
return new ArrayList<PmWorkContent>();
|
|
return new ArrayList<PmWorkContent>();
|
|
}
|
|
}
|
|
contentLambdaQuery.in(PmWorkContent::getProjectId, headProjects);
|
|
contentLambdaQuery.in(PmWorkContent::getProjectId, headProjects);
|
|
- // contentLambdaQuery.inSql(PmWorkContent::getProjectId, subQueryProjects);
|
|
|
|
} else if (projectAscription == 2) {
|
|
} else if (projectAscription == 2) {
|
|
- // contentLambdaQuery.inSql(PmWorkContent::getReportId, subQueryReport);
|
|
|
|
if (receiveList.isEmpty()) {
|
|
if (receiveList.isEmpty()) {
|
|
return new ArrayList<PmWorkContent>();
|
|
return new ArrayList<PmWorkContent>();
|
|
}
|
|
}
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, receiveList);
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, receiveList);
|
|
} else if (projectAscription == 3) {
|
|
} else if (projectAscription == 3) {
|
|
- // contentLambdaQuery.in(PmWorkContent::getReportId, sentOutList);
|
|
|
|
if (sentOutList.isEmpty()) {
|
|
if (sentOutList.isEmpty()) {
|
|
return new ArrayList<PmWorkContent>();
|
|
return new ArrayList<PmWorkContent>();
|
|
}
|
|
}
|
|
@@ -231,11 +252,6 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
List<Integer> receiveList2 = receive();
|
|
List<Integer> receiveList2 = receive();
|
|
List<Integer> sentOutList = sentOut();
|
|
List<Integer> sentOutList = sentOut();
|
|
List<Integer> headProjects = head();
|
|
List<Integer> headProjects = head();
|
|
- // String subQueryReports = "SELECT id FROM pm_work_report WHERE report_date BETWEEN '" + start + "' AND '" + end + "' AND tenant_id = " + SecurityUtils.getTenantId();
|
|
|
|
- // String subQueryReport = "SELECT id FROM pm_work_report WHERE FIND_IN_SET('" + SecurityUtils.getUserId() + "', cc_to) > 0 AND tenant_id = " + SecurityUtils.getTenantId();
|
|
|
|
- // String subQueryProjects = "SELECT id FROM pm_project WHERE project_head = '" + SecurityUtils.getUserId() + "' AND tenant_id = " + SecurityUtils.getTenantId();
|
|
|
|
- // String sentOut = "SELECT id FROM pm_work_report WHERE create_by = '" + SecurityUtils.getUsername() + "' AND tenant_id = " + SecurityUtils.getTenantId();
|
|
|
|
- // String reportIdList = "SELECT report_id FROM pm_work_content WHERE project_name = '" + projectName + "' AND tenant_id = " + SecurityUtils.getTenantId();
|
|
|
|
LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery();
|
|
contentLambdaQuery.select(PmWorkContent::getReportId, PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName);
|
|
contentLambdaQuery.select(PmWorkContent::getReportId, PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName);
|
|
if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
|
|
if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
|
|
@@ -247,18 +263,12 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
contentLambdaQuery.between(PmWorkContent::getCreateTime, startDateTime, endDateTime);
|
|
contentLambdaQuery.between(PmWorkContent::getCreateTime, startDateTime, endDateTime);
|
|
}
|
|
}
|
|
if (projectAscription == 1) {
|
|
if (projectAscription == 1) {
|
|
- //.inSql(PmWorkContent::getReportId, subQueryReports);
|
|
|
|
contentLambdaQuery.in(PmWorkContent::getProjectId, headProjects);
|
|
contentLambdaQuery.in(PmWorkContent::getProjectId, headProjects);
|
|
} else if (projectAscription == 2) {
|
|
} else if (projectAscription == 2) {
|
|
- // contentLambdaQuery.inSql(PmWorkContent::getReportId, subQueryReport);
|
|
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, receiveList2);
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, receiveList2);
|
|
} else if (projectAscription == 3) {
|
|
} else if (projectAscription == 3) {
|
|
- // contentLambdaQuery.inSql(PmWorkContent::getReportId, sentOut);
|
|
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, sentOutList);
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, sentOutList);
|
|
}
|
|
}
|
|
-// if (StringUtils.isNotBlank(projectName)) {
|
|
|
|
-// contentLambdaQuery.inSql(PmWorkContent::getReportId, reportIdList);
|
|
|
|
-// }
|
|
|
|
if (StringUtils.isNotBlank(projectName)) {
|
|
if (StringUtils.isNotBlank(projectName)) {
|
|
List<Integer> list = reportList(projectName);
|
|
List<Integer> list = reportList(projectName);
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, list);
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, list);
|
|
@@ -427,12 +437,14 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
reportQuery.in(PmWorkReport::getId, reportIds)
|
|
reportQuery.in(PmWorkReport::getId, reportIds)
|
|
.orderByDesc(PmWorkReport::getCreateTime);
|
|
.orderByDesc(PmWorkReport::getCreateTime);
|
|
}
|
|
}
|
|
|
|
+ reportQuery.eq(PmWorkReport::getReportStatus, 1);
|
|
IPage<PmWorkReport> reportPage = pmWorkReportMapper.selectPage(new Page<>(pageNum, pageSize), reportQuery);
|
|
IPage<PmWorkReport> reportPage = pmWorkReportMapper.selectPage(new Page<>(pageNum, pageSize), reportQuery);
|
|
if (reportPage.getRecords() == null || reportPage.getRecords().isEmpty()) {
|
|
if (reportPage.getRecords() == null || reportPage.getRecords().isEmpty()) {
|
|
return returnPage;
|
|
return returnPage;
|
|
}
|
|
}
|
|
List<PmWorkReport> reportList = reportPage.getRecords();
|
|
List<PmWorkReport> reportList = reportPage.getRecords();
|
|
|
|
|
|
|
|
+
|
|
LambdaQueryWrapper<PmReceive> statusQuery = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<PmReceive> statusQuery = Wrappers.lambdaQuery();
|
|
statusQuery.select(PmReceive::getReportId, PmReceive::getReadFlag)
|
|
statusQuery.select(PmReceive::getReportId, PmReceive::getReadFlag)
|
|
.eq(PmReceive::getReceiverId, userId)
|
|
.eq(PmReceive::getReceiverId, userId)
|
|
@@ -443,7 +455,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
statusQuery.in(PmReceive::getReportId, reportIds);
|
|
statusQuery.in(PmReceive::getReportId, reportIds);
|
|
}
|
|
}
|
|
List<PmReceive> receiveList = pmReceiveMapper.selectList(statusQuery);
|
|
List<PmReceive> receiveList = pmReceiveMapper.selectList(statusQuery);
|
|
- Map<Integer, Integer> reportReadFlags = receiveList.stream()
|
|
|
|
|
|
+/* Map<Integer, Integer> reportReadFlags = receiveList.stream()
|
|
.collect(Collectors.toMap(PmReceive::getReportId, PmReceive::getReadFlag));
|
|
.collect(Collectors.toMap(PmReceive::getReportId, PmReceive::getReadFlag));
|
|
reportList.forEach(report -> {
|
|
reportList.forEach(report -> {
|
|
List<PmWorkContent> contents = pmWorkContentList.stream()
|
|
List<PmWorkContent> contents = pmWorkContentList.stream()
|
|
@@ -454,7 +466,25 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
if (reportReadFlags.containsKey(report.getId())) {
|
|
if (reportReadFlags.containsKey(report.getId())) {
|
|
report.setReadFlag(reportReadFlags.get(report.getId()));
|
|
report.setReadFlag(reportReadFlags.get(report.getId()));
|
|
}
|
|
}
|
|
- });
|
|
|
|
|
|
+ });*/
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Map<Integer, Integer> reportReadFlags = new HashMap<>();
|
|
|
|
+
|
|
|
|
+ for (PmReceive pmReceive : receiveList) {
|
|
|
|
+ Integer reportId2 = pmReceive.getReportId();
|
|
|
|
+ reportReadFlags.put(reportId2, pmReceive.getReadFlag());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (PmWorkReport report : reportList) {
|
|
|
|
+ List<PmWorkContent> contents = pmWorkContentList.stream()
|
|
|
|
+ .filter(content -> content.getReportId().equals(report.getId()))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ report.setWorkContents(contents);
|
|
|
|
+ userIds.add(report.getSubmitterId());
|
|
|
|
+
|
|
|
|
+ report.setReadFlag(reportReadFlags.getOrDefault(report.getId(), 0));
|
|
|
|
+ }
|
|
|
|
|
|
if (!userIds.isEmpty()) {
|
|
if (!userIds.isEmpty()) {
|
|
List<SysUser> nickNames = nickNames(userIds);
|
|
List<SysUser> nickNames = nickNames(userIds);
|