|
@@ -1574,7 +1574,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String targetUserId, Integer targetProjectId, String groupName, HttpServletRequest request) {
|
|
|
+ public HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String targetUserId, Integer targetProjectId, String groupName,Integer taskType, HttpServletRequest request) {
|
|
|
//根据人员权限来获取,
|
|
|
String token = request.getHeader("TOKEN");
|
|
|
User user = userMapper.selectById(token);
|
|
@@ -1716,9 +1716,25 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
curItem.id = "请假_"+leaveSheetList.get(i).getId();
|
|
|
curItem.userId = leaveSheetList.get(i).getOwnerId();
|
|
|
- curItem.text = "请假";
|
|
|
+ switch (leaveSheetList.get(i).getLeaveType()){
|
|
|
+ case 1:curItem.text = "病假";
|
|
|
+ break;
|
|
|
+ case 2:curItem.text = "年假";
|
|
|
+ break;
|
|
|
+ case 3:curItem.text = "产假";
|
|
|
+ break;
|
|
|
+ case 4:curItem.text = "婚假";
|
|
|
+ break;
|
|
|
+ case 5:curItem.text = "丧家";
|
|
|
+ break;
|
|
|
+ case 6:curItem.text = "调休假";
|
|
|
+ break;
|
|
|
+ case 7:curItem.text = "陪产假";
|
|
|
+ break;
|
|
|
+ case 8:curItem.text = "其他";
|
|
|
+ break;
|
|
|
+ }
|
|
|
curItem.start_date = leaveSheetList.get(i).getStartDate().toString();
|
|
|
-
|
|
|
curItem.end_date =leaveSheetList.get(i).getEndDate().toString();
|
|
|
curItem.parent = lsLastItemId;
|
|
|
itemList.add(curItem);
|
|
@@ -1772,6 +1788,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if (taskType!=null) {
|
|
|
+ List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
|
|
|
+ List<Integer> collect = projectList.stream().map(Project::getId).collect(Collectors.toList());
|
|
|
+ List<Task> tasks = taskMapper.selectList(new QueryWrapper<Task>().eq("task_type", taskType).in("project_id", collect));
|
|
|
+ List filterPids = tasks.stream().map(Task::getProjectId).collect(Collectors.toList());
|
|
|
+ if (projectIds == null) {
|
|
|
+ projectIds = filterPids;
|
|
|
+ if (projectIds.size() == 0) {
|
|
|
+ projectIds.add(-1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId());
|
|
|
QueryWrapper<BusinessTrip> btQueryWrapper =new QueryWrapper<>();
|
|
|
QueryWrapper<BustripProject> bpQueryWrapper =new QueryWrapper<>();
|
|
@@ -3400,13 +3428,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
LocalDateTime sDate = LocalDate.parse(startDate).atTime(LocalTime.MIN);
|
|
|
LocalDateTime eDate = LocalDate.parse(endDate).atTime(LocalTime.MIN);
|
|
|
List<LocalDateTime> dateTimeList = getDays(sDate, eDate);
|
|
|
- //去掉非工作日
|
|
|
- long days =dateTimeList.size();
|
|
|
- for (LocalDateTime localDateTime : dateTimeList) {
|
|
|
- if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
|
|
|
- days-=1;
|
|
|
- }
|
|
|
- }
|
|
|
User targetUser= userMapper.selectById(request.getHeader("token"));
|
|
|
TimeType timeType = timeTypeMapper.selectById(targetUser.getCompanyId());
|
|
|
Integer timeliness = timeType.getTimeliness();
|
|
@@ -3432,7 +3453,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
if(userId!=null){
|
|
|
queryWrapper.eq("id",userId);
|
|
|
}
|
|
|
- if(deptIds!=null){
|
|
|
+ if(deptIds!=null && deptIds.size()>0){
|
|
|
queryWrapper.in("department_id",deptIds);
|
|
|
}
|
|
|
queryWrapper.eq("is_active",1).orderByAsc("department_id");
|
|
@@ -3451,16 +3472,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().eq("company_id", targetUser.getCompanyId()));
|
|
|
List<TimelinessRateVO> resultList=new ArrayList<>();
|
|
|
for (User user : userList){
|
|
|
+ long days =dateTimeList.size();
|
|
|
//请假的不参与及时率统计
|
|
|
List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(user.getId())
|
|
|
&&(ls.getStartDate().isAfter(ChronoLocalDate.from(sDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(sDate)))
|
|
|
&&(ls.getEndDate().isBefore(ChronoLocalDate.from(eDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(eDate)))).collect(Collectors.toList());
|
|
|
- for (LeaveSheet leaveSheet : leaveSheets) {
|
|
|
- Period next = Period.between(leaveSheet.getStartDate(),leaveSheet.getEndDate());
|
|
|
- if(next.getDays()<1){
|
|
|
- days-=1;
|
|
|
- }else {
|
|
|
- days-=next.getDays();
|
|
|
+ if(leaveSheets.size()>0){
|
|
|
+ for (LeaveSheet leaveSheet : leaveSheets) {
|
|
|
+ Period next = Period.between(leaveSheet.getStartDate(),leaveSheet.getEndDate());
|
|
|
+ if(next.getDays()<1){
|
|
|
+ days-=1;
|
|
|
+ }else {
|
|
|
+ days-=next.getDays();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
TimelinessRateVO timelinessRateVO=new TimelinessRateVO();
|
|
@@ -3471,6 +3495,23 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
timelinessRateVO.setDepartmentName(first.get().getDepartmentName());
|
|
|
}
|
|
|
List<Map<String, Object>> mapList = listMap.get(user.getName());
|
|
|
+ //去填未填日报非工作日
|
|
|
+ for (LocalDateTime localDateTime : dateTimeList) {
|
|
|
+ if(mapList!=null){
|
|
|
+ if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())&&!mapList.stream().anyMatch(ml->{
|
|
|
+ Object date = ml.get("createDate");
|
|
|
+ LocalDate createDate = LocalDate.parse(String.valueOf(date));
|
|
|
+ return createDate.isEqual(localDateTime.toLocalDate());
|
|
|
+ })){
|
|
|
+ days-=1;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
|
|
|
+ days-=1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
if(mapList!=null){
|
|
|
int num=0;
|
|
|
for (Map<String, Object> map : mapList) {
|
|
@@ -3487,9 +3528,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
break;
|
|
|
}
|
|
|
if(createTimeDate.isBefore(createDate)||createTimeDate.isEqual(createDate)){
|
|
|
- num++;
|
|
|
+ if(!leaveSheets.stream().anyMatch(ls->(createTimeDate.isAfter(ls.getStartDate())||createTimeDate.isEqual(ls.getStartDate()))&&
|
|
|
+ (createTimeDate.isBefore(ls.getEndDate())||createTimeDate.isEqual(ls.getEndDate())))){
|
|
|
+ num++;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ System.out.println(user.getName());
|
|
|
+ System.out.println(days);
|
|
|
+ System.out.println(num);
|
|
|
BigDecimal bigDecimal=new BigDecimal(num);
|
|
|
BigDecimal divide;
|
|
|
if(days!=0){
|