Compare commits

..

2 Commits

Author SHA1 Message Date
chenhao 13685b08e5 feat:合并代码 2024-11-01 10:17:20 +08:00
mula c06152e4ac Initial commit 2024-09-29 02:29:51 +00:00
10 changed files with 71 additions and 98 deletions

View File

@ -137,8 +137,8 @@ public class ProjectController extends BaseController {
*/
// @PreAuthorize("@ss.hasPermi('system:dept:remove')")
@PostMapping("/executionInfo")
public AjaxResult executionInfo(@RequestBody ProjectQueryDto queryDto) {
return success(service.executionInfo(queryDto));
public AjaxResult executionInfo(@RequestBody WorkLogger workLogger) {
return success(service.executionInfo(workLogger));
}
/**

View File

@ -56,9 +56,7 @@ public class Project extends BaseEntity {
private String state;
/**
* 0- 1- 2-
*
*/
@Deprecated
private String dataState;
/**
* 0- 1- 2-

View File

@ -22,6 +22,4 @@ public class ProjectQueryDto {
private Integer projectId;
private Date startDate;
private Date endDate;
private Integer userId;
private String projectState;
}

View File

@ -60,9 +60,10 @@ public interface IProjectService {
List<Project> listProjectByUser(String createBy);
List<TeamStaticsVo> getTeamInfo(Integer projectId);
List<TeamStaticsVo> getTeamInfo(Integer projectId);
List<ProjectExecutionVo> executionInfo(WorkLogger workLogger);
List<ProjectExecutionVo> executionInfo(ProjectQueryDto ProjectQueryDto);
ProjectWorkInfoVo workInfo(ProjectQueryDto project);

View File

@ -1,7 +1,6 @@
package tech.unissense.pms.business.project.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -74,7 +73,6 @@ public class ProjectServiceImpl implements IProjectService {
* @param project
* @return
*/
@Override
public List<Project> permissisonList(Project project) {
dataPermissions(project);
List<Project> list = this.projectMapper.list(project);
@ -245,14 +243,11 @@ public class ProjectServiceImpl implements IProjectService {
}
@Override
public List<ProjectExecutionVo> executionInfo(ProjectQueryDto queryDto) {
public List<ProjectExecutionVo> executionInfo(WorkLogger workLogger) {
Project projectQueryDto = new Project();
if (queryDto.getUserId() != null) {
projectQueryDto.setQueryUserId(Long.valueOf(queryDto.getUserId()));
}
if (queryDto.getProjectState() != null) {
projectQueryDto.setProjectState(queryDto.getProjectState());
if (workLogger.getUserId() != null) {
projectQueryDto.setQueryUserId(Long.valueOf(workLogger.getUserId()));
}
List<Project> projects = this.permissisonList(projectQueryDto);
List<Integer> projectIdList = projects.stream()
@ -264,23 +259,9 @@ public class ProjectServiceImpl implements IProjectService {
.map(item -> item.getProjectId() + "_" + item.getUserId())
.collect(Collectors.toSet());
WorkLogger workLogger = new WorkLogger();
workLogger.setProjectIdList(projectIdList);
List<WorkLogger> allWorkLoggerList = workLoggerService.list(workLogger);
Map<Integer, BigDecimal> workTimeAllMap = allWorkLoggerList.stream().filter(item-> StrUtil.isNotEmpty(item.getWorkTime())).collect(Collectors.groupingBy(WorkLogger::getProjectId, Collectors.reducing(BigDecimal.ZERO
, item -> new BigDecimal(item.getWorkTime()), BigDecimal::add)));
// BeanUtils.copyBeanProp(workLogger,queryDto);
List<WorkLogger> workLoggerList = allWorkLoggerList.stream()
.filter(item -> {
Date date = item.getLoggerDate();
Integer userId = item.getUserId();
return (date != null && !date.before(queryDto.getStartDate()) && !date.after(queryDto.getEndDate())) &&
(queryDto.getUserId() != null && queryDto.getUserId().equals(userId));
})
.collect(Collectors.toList());
Map<String, BigDecimal> workTimeMap = workLoggerList.stream()
Map<String, BigDecimal> workTimeMap = workLoggerService.list(workLogger).stream()
.filter(item -> teamSet.contains(item.getProjectId() + "_" + item.getUserId()))
.collect(Collectors.toMap(
item -> item.getProjectId() + "_"
@ -288,8 +269,8 @@ public class ProjectServiceImpl implements IProjectService {
item -> new BigDecimal(item.getWorkTime()),
BigDecimal::add));
LocalDate startDate = queryDto.getStartDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate endDate = queryDto.getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate startDate = workLogger.getStartDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate endDate = workLogger.getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return projects.stream().map(project -> {
List<BigDecimal> tempList = Stream.iterate(startDate, date -> date.plusDays(1))
@ -309,7 +290,6 @@ public class ProjectServiceImpl implements IProjectService {
BeanUtils.copyBeanProp(vo, project);
vo.setDetailList(tempList);
vo.setAllWorkTime(tempList.stream().reduce(BigDecimal.ZERO, BigDecimal::add));
vo.setAllDateWorkTime(workTimeAllMap.getOrDefault(project.getProjectId(), BigDecimal.ZERO));
return vo;
}).collect(Collectors.toList());
}

View File

@ -25,6 +25,5 @@ public class ProjectExecutionVo {
private String projectState;
private Integer budgetDate;
private BigDecimal allWorkTime;
private BigDecimal allDateWorkTime;
private List<BigDecimal> detailList;
}

View File

@ -116,7 +116,6 @@ public class WorkLoggerServiceImpl implements IWorkLoggerService {
WorkLogger temp = calendarMap.get(key);
calendarVo.setDate(DateUtils.toDate(localDate));
calendarVo.setState(temp != null ? temp.getState() : "-1");
calendarVo.setWorkTime(temp != null ? temp.getWorkTime() : "0");
result.add(calendarVo);
}

View File

@ -2,7 +2,6 @@ package tech.unissense.pms.business.work.logger.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -23,5 +22,4 @@ public class CalendarVo {
private Date date;
private String state;
private String workTime;
}

View File

@ -99,18 +99,18 @@
and t1.state = #{state}
</if>
<if test="projectState != null and projectState != ''">
and t1.project_state = #{projectState}
<!-- <choose>-->
<!-- <when test="projectState=='0'.toString()">-->
<!-- and t1.start_date <![CDATA[ > ]]> sysdate()-->
<!-- </when>-->
<!-- <when test="projectState=='1'.toString()">-->
<!-- and sysdate() between t1.start_date and t1.end_date-->
<!-- </when>-->
<!-- <when test="projectState=='2'.toString()">-->
<!-- and t1.end_date <![CDATA[ < ]]> sysdate()-->
<!-- </when>-->
<!-- </choose>-->
<!-- and t1.project_state = #{projectState} -->
<choose>
<when test="projectState=='0'.toString()">
and t1.start_date <![CDATA[ > ]]> sysdate()
</when>
<when test="projectState=='1'.toString()">
and sysdate() between t1.start_date and t1.end_date
</when>
<when test="projectState=='2'.toString()">
and t1.end_date <![CDATA[ < ]]> sysdate()
</when>
</choose>
</if>
<if test="createBy != null">
and t1.create_by = #{createBy}