|
@@ -28,6 +28,7 @@ import java.math.BigDecimal;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
+import java.time.temporal.TemporalAdjusters;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -704,7 +705,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
|
|
LambdaQueryWrapper<PmProject> projectsQuery = Wrappers.lambdaQuery();
|
|
|
projectsQuery.select(PmProject::getId, PmProject::getProjectName);
|
|
|
- if (projectId != null && projectId != 0) {
|
|
|
+ if (projectId != null && projectId >= 0) {
|
|
|
projectsQuery.eq(PmProject::getId, projectId);
|
|
|
return pmProjectMapper.selectList(projectsQuery);
|
|
|
}
|
|
@@ -722,14 +723,13 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
private List<SysUser> userNameList(List<Long> userId) {
|
|
|
LambdaQueryWrapper<SysUser> userNameQuery = Wrappers.lambdaQuery();
|
|
|
userNameQuery.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName, SysUser::getPhonenumber, SysUser::getAvatar,
|
|
|
- SysUser::getSex, SysUser::getDeptId, SysUser::getAddress)
|
|
|
- .eq(SysUser::getDelFlag, 0)
|
|
|
- .eq(SysUser::getStatus, 0);
|
|
|
+ SysUser::getSex, SysUser::getDeptId, SysUser::getAddress);
|
|
|
if (!userId.isEmpty()) {
|
|
|
- userNameQuery.in(SysUser::getUserId, userId);
|
|
|
+ userNameQuery.eq(SysUser::getDelFlag, 0).eq(SysUser::getStatus, 0).in(SysUser::getUserId, userId);
|
|
|
return sysUserMapper.selectList(userNameQuery);
|
|
|
+ } else {
|
|
|
+ userNameQuery.eq(SysUser::getUserId, SecurityUtils.getUserId());
|
|
|
}
|
|
|
- userNameQuery.apply(Objects.nonNull(DataScopeContextHolder.getDataScopeSql()), DataScopeContextHolder.getDataScopeSql());
|
|
|
return sysUserMapper.selectList(userNameQuery);
|
|
|
}
|
|
|
|
|
@@ -785,16 +785,40 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
* @author: fu
|
|
|
* @date: 2024/8/8 19:22
|
|
|
* @param: [userId, projectId, startDate, endDate]
|
|
|
+ * * @param userId 用户id
|
|
|
+ * * @param filter 是否过滤0工时(默认1:不过滤;2:过滤)
|
|
|
+ * * @param startDate 开始时间
|
|
|
+ * * @param endDate 结束时间
|
|
|
+ * * @param workerOrProject 打工仔还是项目(默认1:打工仔;2:项目)
|
|
|
* @return: java.util.List<com.usky.iot.domain.WorkTimeExportVO>
|
|
|
**/
|
|
|
@DataScope
|
|
|
@Override
|
|
|
- public List<Object> workHourStatistic(List<Long> userId, Integer projectId, Integer filter, String startDate, String endDate, Integer workerOrProject) {
|
|
|
+ public List<Object> workHourStatistic(PmWorkHourStatisticRequestVO requestVO) {
|
|
|
+ List<Long> userId = new ArrayList<>();
|
|
|
+ if (requestVO.getUserId() != null) {
|
|
|
+ userId = requestVO.getUserId();
|
|
|
+ }
|
|
|
+ Integer projectId = requestVO.getProjectId();
|
|
|
+ Integer filter = 1;
|
|
|
+ if (requestVO.getFilter() != null) {
|
|
|
+ filter = requestVO.getFilter();
|
|
|
+ }
|
|
|
+ String startDate = requestVO.getStartDate();
|
|
|
+ String endDate = requestVO.getEndDate();
|
|
|
+ Integer workerOrProject = 1;
|
|
|
+ if (requestVO.getWorkerOrProject() != null){
|
|
|
+ workerOrProject = requestVO.getWorkerOrProject();
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) {
|
|
|
+ startDate = LocalDate.now().with(TemporalAdjusters.firstDayOfYear()).toString();
|
|
|
+ endDate = LocalDate.now().with(TemporalAdjusters.lastDayOfYear()).toString();
|
|
|
+ }
|
|
|
+
|
|
|
List<ProjectWorkTimeVO> projectWorkTime = new ArrayList<>();
|
|
|
List<UserWorkTimeVO> userWorkTimeVO = new ArrayList<>();
|
|
|
- List<ProjectWorkTimeVO> projectWorkTime1 = new ArrayList<>();
|
|
|
- List<UserWorkTimeVO> userWorkTimeVO1 = new ArrayList<>();
|
|
|
List<Object> returnList = new ArrayList<>();
|
|
|
+
|
|
|
if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) {
|
|
|
throw new BusinessException("请设置查询时间范围!");
|
|
|
}
|
|
@@ -1015,24 +1039,26 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
|
|
|
|
|
|
/**
|
|
|
* 工时-明细-导出
|
|
|
- * @param userId
|
|
|
- * @param projectId
|
|
|
- * @param startDate
|
|
|
- * @param endDate
|
|
|
* @return
|
|
|
*/
|
|
|
@DataScope(deptAlias = "u")
|
|
|
@Override
|
|
|
- public List<WorkTimeExportVO> workHourStatisticExport(Long userId, Integer projectId, String startDate, String
|
|
|
- endDate) {
|
|
|
+ public List<WorkTimeExportVO> workHourStatisticExport(PmWorkHourStatisticRequestVO requestVO) {
|
|
|
+ List<Long> userIds = new ArrayList<>();
|
|
|
+ if (!requestVO.getUserId().isEmpty()){
|
|
|
+ userIds = requestVO.getUserId();
|
|
|
+ }
|
|
|
+
|
|
|
+ Integer projectId = requestVO.getProjectId();
|
|
|
+
|
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
|
LocalDate start = null;
|
|
|
LocalDate end = null;
|
|
|
- if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
|
|
|
- start = LocalDate.parse(startDate);
|
|
|
- end = LocalDate.parse(endDate);
|
|
|
+ if (StringUtils.isNotBlank(requestVO.getStartDate()) && StringUtils.isNotBlank(requestVO.getEndDate())) {
|
|
|
+ start = LocalDate.parse(requestVO.getStartDate());
|
|
|
+ end = LocalDate.parse(requestVO.getEndDate());
|
|
|
}
|
|
|
- return pmWorkContentMapper.workHourStatisticExport(userId, projectId, start, end, tenantId);
|
|
|
+ return pmWorkContentMapper.workHourStatisticExport(userIds, projectId, start, end, tenantId);
|
|
|
}
|
|
|
|
|
|
/**
|