|
@@ -57,16 +57,20 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
|
|
|
@Override
|
|
|
public void addProject(PmProject project) {
|
|
|
+ Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
|
|
+ String userName = SecurityUtils.getUsername();
|
|
|
+ Integer tenantId = SecurityUtils.getTenantId();
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
if (Objects.isNull(project.getProjectWorkload())) {
|
|
|
if (Objects.isNull(project.getId())) {
|
|
|
- project.setCreateBy(SecurityUtils.getUsername());
|
|
|
- project.setCreateTime(LocalDateTime.now());
|
|
|
- project.setTenantId(SecurityUtils.getTenantId());
|
|
|
- project.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
|
|
|
+ project.setCreateBy(userName);
|
|
|
+ project.setCreateTime(now);
|
|
|
+ project.setTenantId(tenantId);
|
|
|
+ project.setDeptId(deptId);
|
|
|
this.save(project);
|
|
|
} else {
|
|
|
- project.setUpdateBy(SecurityUtils.getUsername());
|
|
|
- project.setUpdateTime(LocalDateTime.now());
|
|
|
+ project.setUpdateBy(userName);
|
|
|
+ project.setUpdateTime(now);
|
|
|
this.updateById(project);
|
|
|
}
|
|
|
} else {
|
|
@@ -76,14 +80,13 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
throw new BusinessException("计划人/天整数位超出长度请重新输入");
|
|
|
} else {
|
|
|
if (Objects.isNull(project.getId())) {
|
|
|
- project.setCreateBy(SecurityUtils.getUsername());
|
|
|
- project.setCreateTime(LocalDateTime.now());
|
|
|
- project.setTenantId(SecurityUtils.getTenantId());
|
|
|
- project.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
|
|
|
+ project.setCreateBy(userName);
|
|
|
+ project.setCreateTime(now);
|
|
|
+ project.setDeptId(deptId);
|
|
|
this.save(project);
|
|
|
} else {
|
|
|
- project.setUpdateBy(SecurityUtils.getUsername());
|
|
|
- project.setUpdateTime(LocalDateTime.now());
|
|
|
+ project.setUpdateBy(userName);
|
|
|
+ project.setUpdateTime(now);
|
|
|
this.updateById(project);
|
|
|
}
|
|
|
}
|
|
@@ -144,6 +147,10 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
@Override
|
|
|
public CommonPage<PmProject> projectList(String projectName, Integer projectType, Integer projectStatus, Integer projectAscription, Integer pageNum, Integer pageSize, Integer projectId) {
|
|
|
IPage<PmProject> page = new Page<>(pageNum, pageSize);
|
|
|
+ Long userId = SecurityUtils.getUserId();
|
|
|
+ String username = SecurityUtils.getUsername();
|
|
|
+ String nickName = SecurityUtils.getLoginUser().getSysUser().getNickName();
|
|
|
+ Integer tenantId = SecurityUtils.getTenantId();
|
|
|
LambdaQueryWrapper<PmProject> lambdaQuery = Wrappers.lambdaQuery();
|
|
|
lambdaQuery.eq(PmProject::getTenantId, SecurityUtils.getTenantId()).eq(PmProject::getDelFlag, 0);
|
|
|
if (projectId != null && projectId != 0) {
|
|
@@ -152,13 +159,13 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
return new CommonPage<>(page.getRecords(), page.getTotal(), pageSize, pageNum);
|
|
|
}
|
|
|
if (projectAscription == 0) {
|
|
|
- lambdaQuery.and(q -> q.eq(PmProject::getProjectHead, SecurityUtils.getUserId())
|
|
|
- .or().apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0")
|
|
|
- .or().eq(PmProject::getCreateBy, SecurityUtils.getUsername()));
|
|
|
+ lambdaQuery.and(q -> q.eq(PmProject::getProjectHead, userId)
|
|
|
+ .or().apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .or().eq(PmProject::getCreateBy, username));
|
|
|
} else if (projectAscription == 1) {
|
|
|
- lambdaQuery.eq(PmProject::getProjectHead, SecurityUtils.getUserId());
|
|
|
+ lambdaQuery.eq(PmProject::getProjectHead, userId);
|
|
|
} else if (projectAscription == 2) {
|
|
|
- lambdaQuery.apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0");
|
|
|
+ lambdaQuery.apply("FIND_IN_SET('" + userId + "', project_member) > 0");
|
|
|
}
|
|
|
if (!projectName.isEmpty()) {
|
|
|
lambdaQuery.like(PmProject::getProjectName, projectName);
|
|
@@ -174,7 +181,7 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
|
|
|
LambdaQueryWrapper<SysUser> query = Wrappers.lambdaQuery();
|
|
|
query.select(SysUser::getUserName, SysUser::getNickName)
|
|
|
- .eq(SysUser::getTenantId, SecurityUtils.getTenantId())
|
|
|
+ .eq(SysUser::getTenantId, tenantId)
|
|
|
.eq(SysUser::getDelFlag, 0)
|
|
|
.eq(SysUser::getStatus, "0");
|
|
|
List<SysUser> sysUsers = sysUserMapper.selectList(query);
|
|
@@ -182,7 +189,7 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
Map<String, String> userNameToNickName = new HashMap<>();
|
|
|
for (SysUser sysUser : sysUsers) {
|
|
|
if (sysUser != null && sysUser.getUserName() != null) {
|
|
|
- userNameToNickName.put(sysUser.getUserName(), sysUser.getNickName());
|
|
|
+ userNameToNickName.put(sysUser.getUserName(), nickName);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -369,44 +376,50 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
*/
|
|
|
@Override
|
|
|
public List<Map<LocalDate, BigDecimal>> projectWorkTime(Integer projectId, String startDate, String endDate) {
|
|
|
+
|
|
|
+ if (projectId == null || projectId == 0) {
|
|
|
+ throw new BusinessException("查询项目工时项目id有误!");
|
|
|
+ }
|
|
|
+
|
|
|
List<Map<LocalDate, BigDecimal>> workTimeCount = new ArrayList<>();
|
|
|
- if (projectId != null) {
|
|
|
- LambdaQueryWrapper<PmWorkContent> wrapper = Wrappers.lambdaQuery();
|
|
|
- wrapper.select(PmWorkContent::getReportId, PmWorkContent::getSubmitterId, PmWorkContent::getWorkTime)
|
|
|
- .eq(PmWorkContent::getProjectId, projectId)
|
|
|
- .eq(PmWorkContent::getTenantId, SecurityUtils.getTenantId());
|
|
|
|
|
|
- if (StringUtils.isNotBlank(startDate) || StringUtils.isNotBlank(endDate)) {
|
|
|
- LambdaQueryWrapper<PmWorkReport> wrapper2 = Wrappers.lambdaQuery();
|
|
|
- wrapper2.select(PmWorkReport::getId, PmWorkReport::getReportDate)
|
|
|
- .eq(PmWorkReport::getTenantId, SecurityUtils.getTenantId())
|
|
|
- .between(PmWorkReport::getReportDate, startDate, endDate);
|
|
|
- List<PmWorkReport> pmWorkReports = pmWorkReportMapper.selectList(wrapper2);
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
+ if (StringUtils.isBlank(endDate)) {
|
|
|
+ endDate = now.toString();
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(startDate)) {
|
|
|
+ startDate = now.minusDays(29).toString();
|
|
|
+ }
|
|
|
|
|
|
- List<Integer> reportIds = pmWorkReports.stream().map(PmWorkReport::getId).collect(Collectors.toList());
|
|
|
- if (reportIds.isEmpty()) {
|
|
|
- return workTimeCount;
|
|
|
- }
|
|
|
- wrapper.in(PmWorkContent::getReportId, reportIds);
|
|
|
- List<PmWorkContent> pmWorkContents = pmWorkContentMapper.selectList(wrapper);
|
|
|
-
|
|
|
- for (PmWorkContent pmWorkContent : pmWorkContents) {
|
|
|
- Integer reportId = pmWorkContent.getReportId();
|
|
|
- for (PmWorkReport pmWorkReport : pmWorkReports) {
|
|
|
- if (reportId.equals(pmWorkReport.getId())) {
|
|
|
- LocalDate reportDate = pmWorkReport.getReportDate();
|
|
|
- BigDecimal workTime = pmWorkContent.getWorkTime();
|
|
|
- Map<LocalDate, BigDecimal> map = new HashMap<>();
|
|
|
- map.put(reportDate, workTime);
|
|
|
- workTimeCount.add(map);
|
|
|
- }
|
|
|
- }
|
|
|
+ LambdaQueryWrapper<PmWorkReport> wrapper2 = Wrappers.lambdaQuery();
|
|
|
+ wrapper2.select(PmWorkReport::getId, PmWorkReport::getReportDate)
|
|
|
+ .eq(PmWorkReport::getTenantId, SecurityUtils.getTenantId())
|
|
|
+ .between(PmWorkReport::getReportDate, startDate, endDate);
|
|
|
+ List<PmWorkReport> pmWorkReports = pmWorkReportMapper.selectList(wrapper2);
|
|
|
+
|
|
|
+ List<Integer> reportIds = pmWorkReports.stream().map(PmWorkReport::getId).collect(Collectors.toList());
|
|
|
+ if (reportIds.isEmpty()) {
|
|
|
+ return workTimeCount;
|
|
|
+ }
|
|
|
+
|
|
|
+ LambdaQueryWrapper<PmWorkContent> wrapper = Wrappers.lambdaQuery();
|
|
|
+ wrapper.select(PmWorkContent::getReportId, PmWorkContent::getSubmitterId, PmWorkContent::getWorkTime)
|
|
|
+ .eq(PmWorkContent::getProjectId, projectId)
|
|
|
+ .eq(PmWorkContent::getTenantId, SecurityUtils.getTenantId())
|
|
|
+ .in(PmWorkContent::getReportId, reportIds);
|
|
|
+ List<PmWorkContent> pmWorkContents = pmWorkContentMapper.selectList(wrapper);
|
|
|
+
|
|
|
+ for (PmWorkContent pmWorkContent : pmWorkContents) {
|
|
|
+ Integer reportId = pmWorkContent.getReportId();
|
|
|
+ for (PmWorkReport pmWorkReport : pmWorkReports) {
|
|
|
+ if (reportId.equals(pmWorkReport.getId())) {
|
|
|
+ LocalDate reportDate = pmWorkReport.getReportDate();
|
|
|
+ BigDecimal workTime = pmWorkContent.getWorkTime();
|
|
|
+ Map<LocalDate, BigDecimal> map = new HashMap<>();
|
|
|
+ map.put(reportDate, workTime);
|
|
|
+ workTimeCount.add(map);
|
|
|
}
|
|
|
- } else {
|
|
|
- throw new BusinessException("查询项目工时统计时间范围不能为空!");
|
|
|
}
|
|
|
- } else {
|
|
|
- throw new BusinessException("查询项目工时项目id不能为空!");
|
|
|
}
|
|
|
return workTimeCount;
|
|
|
}
|