|
@@ -29,6 +29,8 @@ import com.ruoyi.common.datascope.context.DataScopeContextHolder;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -69,11 +71,12 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
}
|
|
|
|
|
|
private List<Integer> reportDateQuery(String startDate, String endDate) {
|
|
|
-
|
|
|
+ Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
|
LambdaQueryWrapper<PmWorkReport> reportQuery = Wrappers.lambdaQuery();
|
|
|
reportQuery.select(PmWorkReport::getId)
|
|
|
- .eq(PmWorkReport::getTenantId, tenantId);
|
|
|
+ .eq(PmWorkReport::getTenantId, tenantId)
|
|
|
+ .eq(PmWorkReport::getDeptId, deptId);
|
|
|
if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
|
|
|
LocalDate start = LocalDate.parse(startDate);
|
|
|
LocalDate end = LocalDate.parse(endDate);
|
|
@@ -163,8 +166,10 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
//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();
|
|
|
- contentLambdaQuery.select(PmWorkContent::getProjectId, PmWorkContent::getProjectName)
|
|
|
- .in(PmWorkContent::getReportId, reportIds);
|
|
|
+ contentLambdaQuery.select(PmWorkContent::getProjectId, PmWorkContent::getProjectName);
|
|
|
+ if (!reportIds.isEmpty()) {
|
|
|
+ contentLambdaQuery.in(PmWorkContent::getReportId, reportIds);
|
|
|
+ }
|
|
|
//.inSql(PmWorkContent::getReportId, subQueryReports);
|
|
|
if (StringUtils.isNotBlank(projectName)) {
|
|
|
contentLambdaQuery.like(PmWorkContent::getProjectName, projectName);
|
|
@@ -177,12 +182,15 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
//contentLambdaQuery.inSql(PmWorkContent::getProjectId, subQueryProjects);
|
|
|
} else if (projectAscription == 2) {
|
|
|
//contentLambdaQuery.inSql(PmWorkContent::getReportId, subQueryReport);
|
|
|
- if (receiveList.isEmpty()){
|
|
|
+ if (receiveList.isEmpty()) {
|
|
|
return new ArrayList<PmWorkContent>();
|
|
|
}
|
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, receiveList);
|
|
|
} else if (projectAscription == 3) {
|
|
|
//contentLambdaQuery.in(PmWorkContent::getReportId, sentOutList);
|
|
|
+ if (sentOutList.isEmpty()) {
|
|
|
+ return new ArrayList<PmWorkContent>();
|
|
|
+ }
|
|
|
contentLambdaQuery.in(PmWorkContent::getReportId, sentOutList);
|
|
|
}
|
|
|
contentLambdaQuery.groupBy(PmWorkContent::getProjectId, PmWorkContent::getProjectName);
|
|
@@ -211,9 +219,6 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
userIds.add(c.getSubmitterId());
|
|
|
}
|
|
|
} else {
|
|
|
- //LocalDate start = LocalDate.parse(startDate);
|
|
|
- //LocalDate end = LocalDate.parse(endDate);
|
|
|
- List<Integer> reportIds2 = reportDateQuery(startDate, endDate);
|
|
|
List<Integer> receiveList2 = receive();
|
|
|
List<Integer> sentOutList = sentOut();
|
|
|
List<Integer> headProjects = head();
|
|
@@ -223,8 +228,15 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
//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();
|
|
|
- contentLambdaQuery.select(PmWorkContent::getReportId, PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName)
|
|
|
- .in(PmWorkContent::getReportId, reportIds2);
|
|
|
+ contentLambdaQuery.select(PmWorkContent::getReportId, PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName);
|
|
|
+ if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ LocalDate start = LocalDate.parse(startDate, formatter);
|
|
|
+ LocalDate end = LocalDate.parse(endDate, formatter);
|
|
|
+ LocalDateTime startDateTime = start.atStartOfDay();
|
|
|
+ LocalDateTime endDateTime = end.atTime(23, 59, 59);
|
|
|
+ contentLambdaQuery.between(PmWorkContent::getCreateTime, startDateTime, endDateTime);
|
|
|
+ }
|
|
|
if (projectAscription == 1) {
|
|
|
//.inSql(PmWorkContent::getReportId, subQueryReports);
|
|
|
contentLambdaQuery.in(PmWorkContent::getProjectId, headProjects);
|
|
@@ -542,7 +554,6 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
public List<Object> workHourStatistic(Long userId, Integer projectId, Integer filter, String startDate, String endDate, Integer workerOrProject) {
|
|
|
List<ProjectWorkTimeVO> projectWorkTime = new ArrayList<>();
|
|
@@ -590,9 +601,9 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
workHoursStatisticsVO.setNickName(nickName1);
|
|
|
}
|
|
|
}
|
|
|
- for (PmProject project : pmProjects){
|
|
|
+ for (PmProject project : pmProjects) {
|
|
|
String projectName = project.getProjectName();
|
|
|
- if (projectName.equals(projectName1)){
|
|
|
+ if (projectName.equals(projectName1)) {
|
|
|
workHoursStatisticsVO.setProjectName(projectName);
|
|
|
}
|
|
|
}
|