|
@@ -11,6 +11,7 @@ import com.usky.iot.mapper.PmProjectMapper;
|
|
import com.usky.iot.mapper.PmWorkContentMapper;
|
|
import com.usky.iot.mapper.PmWorkContentMapper;
|
|
import com.usky.iot.mapper.PmWorkReportMapper;
|
|
import com.usky.iot.mapper.PmWorkReportMapper;
|
|
import com.usky.iot.mapper.SysUserMapper;
|
|
import com.usky.iot.mapper.SysUserMapper;
|
|
|
|
+import com.usky.iot.service.PmProjectService;
|
|
import com.usky.iot.service.PmWorkContentService;
|
|
import com.usky.iot.service.PmWorkContentService;
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
import com.usky.iot.service.vo.ProjectWorkTimeVO;
|
|
import com.usky.iot.service.vo.ProjectWorkTimeVO;
|
|
@@ -46,6 +47,9 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
@Autowired
|
|
@Autowired
|
|
private PmProjectMapper pmProjectMapper;
|
|
private PmProjectMapper pmProjectMapper;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private PmProjectService pmProjectService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void deleteContent(Integer reportId) {
|
|
public void deleteContent(Integer reportId) {
|
|
LambdaQueryWrapper<PmWorkContent> deleteWrapper = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<PmWorkContent> deleteWrapper = Wrappers.lambdaQuery();
|
|
@@ -136,7 +140,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public List<Object> workHourStatistic(Long userId, Integer filter, String startDate, String endDate, Integer workerOrProject) {
|
|
|
|
|
|
+ public List<Object> workHourStatistic(Long userId, Integer projectId, Integer filter, String startDate, String endDate, Integer workerOrProject) {
|
|
List<ProjectWorkTimeVO> projectWorkTime = new ArrayList<>();
|
|
List<ProjectWorkTimeVO> projectWorkTime = new ArrayList<>();
|
|
List<UserWorkTimeVO> userWorkTimeVO = new ArrayList<>();
|
|
List<UserWorkTimeVO> userWorkTimeVO = new ArrayList<>();
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
@@ -144,27 +148,24 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
LocalDate start = LocalDate.parse(startDate);
|
|
LocalDate start = LocalDate.parse(startDate);
|
|
LocalDate end = LocalDate.parse(endDate);
|
|
LocalDate end = LocalDate.parse(endDate);
|
|
//找出租户下所有项目
|
|
//找出租户下所有项目
|
|
- LambdaQueryWrapper<PmProject> projectQuery = Wrappers.lambdaQuery();
|
|
|
|
- projectQuery.select(PmProject::getProjectName)
|
|
|
|
- .eq(PmProject::getTenantId, SecurityUtils.getTenantId())
|
|
|
|
- .orderByAsc(PmProject::getProjectName);
|
|
|
|
- List<PmProject> projects = pmProjectMapper.selectList(projectQuery);
|
|
|
|
- List<String> pmProjectName = projects.stream()
|
|
|
|
- .map(PmProject::getProjectName)
|
|
|
|
|
|
+ List<Map<String, Object>> projectIdName = pmProjectService.projectIdName(projectId);
|
|
|
|
+ List<String> pmProjectName = projectIdName.stream()
|
|
|
|
+ .map(map -> (String) map.get("name"))
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
//统计userId每个项目所需工时
|
|
//统计userId每个项目所需工时
|
|
List<WorkHoursStatisticsVO> userAndProject = baseMapper.workHoursStatistics(start, end, userId, tenantId);
|
|
List<WorkHoursStatisticsVO> userAndProject = baseMapper.workHoursStatistics(start, end, userId, tenantId);
|
|
- List<String> nickName = userAndProject.stream()
|
|
|
|
- .map(WorkHoursStatisticsVO::getNickName)
|
|
|
|
- .distinct()
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- if (workerOrProject != 2) {
|
|
|
|
|
|
+ List<Map<String, Object>> users = pmProjectService.projectUsers(userId);
|
|
|
|
+ List<String> nickName = new ArrayList<>();
|
|
|
|
+ for (Map<String, Object> map : users) {
|
|
|
|
+ Object name = map.get("name");
|
|
|
|
+ nickName.add((String) name);
|
|
|
|
+ }
|
|
|
|
+ if (workerOrProject != 1) {
|
|
returnList.add(nickName);
|
|
returnList.add(nickName);
|
|
//重组返回数据结构
|
|
//重组返回数据结构
|
|
- for (PmProject project : projects) {
|
|
|
|
- String name = project.getProjectName();
|
|
|
|
|
|
+ for (String name : pmProjectName) {
|
|
ProjectWorkTimeVO projectWorkTimeVO = new ProjectWorkTimeVO();
|
|
ProjectWorkTimeVO projectWorkTimeVO = new ProjectWorkTimeVO();
|
|
- projectWorkTimeVO.setProjectName(name);
|
|
|
|
|
|
+ projectWorkTimeVO.setProjectOrPerson(name);
|
|
List<BigDecimal> workTime = new ArrayList<>();
|
|
List<BigDecimal> workTime = new ArrayList<>();
|
|
boolean hasNonZeroWorkTime = false;
|
|
boolean hasNonZeroWorkTime = false;
|
|
for (String currentNickName : nickName) {
|
|
for (String currentNickName : nickName) {
|
|
@@ -198,7 +199,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
for (String uName : nickName) {
|
|
for (String uName : nickName) {
|
|
String name = uName;
|
|
String name = uName;
|
|
UserWorkTimeVO userWorkTimeVO2 = new UserWorkTimeVO();
|
|
UserWorkTimeVO userWorkTimeVO2 = new UserWorkTimeVO();
|
|
- userWorkTimeVO2.setUserNickName(name);
|
|
|
|
|
|
+ userWorkTimeVO2.setProjectOrPerson(name);
|
|
List<BigDecimal> workTime = new ArrayList<>();
|
|
List<BigDecimal> workTime = new ArrayList<>();
|
|
boolean hasNonZeroWorkTime = false;
|
|
boolean hasNonZeroWorkTime = false;
|
|
for (String currentNickName : pmProjectName) {
|
|
for (String currentNickName : pmProjectName) {
|