Merge remote-tracking branch 'origin/master'
This commit is contained in:
@ -19,6 +19,8 @@ public class AppTaskDetailRecruitVO {
|
||||
List<BgtProjectRecruitApplyVO> applyList;
|
||||
|
||||
|
||||
@ApiModelProperty("总数")
|
||||
private Integer total;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import com.ruoyi.bgt.domain.BgtProjectRecruit;
|
||||
import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyQueryDTO;
|
||||
import com.ruoyi.bgt.domain.dto.BgtWageApplicationQueryDTO;
|
||||
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
|
||||
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
|
||||
import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO;
|
||||
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
|
||||
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
|
||||
@ -22,6 +23,7 @@ import com.ruoyi.common.enums.AuditStatus;
|
||||
import com.ruoyi.common.enums.ProjectTaskStatus;
|
||||
import com.ruoyi.common.enums.RecruitApplyStatus;
|
||||
import com.ruoyi.common.util.DataUtil;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.PageUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo;
|
||||
@ -39,6 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -203,18 +206,33 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
||||
|
||||
@Override
|
||||
public AppTaskDetailAttendanceVO attendance(Long id) {
|
||||
FbsProjectTask task = getById(id);
|
||||
LocalDate taskBeginTime = DateUtils.str2Localdate(task.getTaskBeginTime(), DateUtils.YYYY_MM_DD);
|
||||
LocalDate taskEndTime = DateUtils.str2Localdate(task.getTaskEndTime(), DateUtils.YYYY_MM_DD);
|
||||
//考勤情况
|
||||
AppTaskDetailAttendanceVO appTaskDetailVO = new AppTaskDetailAttendanceVO();
|
||||
appTaskDetailVO.setId(id);
|
||||
LocalDate date = LocalDate.now();
|
||||
LocalDate startOfMonth = date.withDayOfMonth(1);
|
||||
List<BgtAttendanceCountVO> countVOS = attendanceService.countByTaskId(id, startOfMonth, date);
|
||||
if(taskEndTime!=null &&taskEndTime.isBefore(date)){
|
||||
date = taskEndTime;
|
||||
}
|
||||
LocalDate startTime = date.minusDays(7);
|
||||
if (taskBeginTime!=null &&taskBeginTime.isAfter(startTime)){
|
||||
startTime = taskBeginTime;
|
||||
}
|
||||
List<BgtAttendanceCountVO>
|
||||
countVOS = attendanceService.countByTaskId(id, startTime, date);
|
||||
if(CollectionUtil.isNotEmpty(countVOS)){
|
||||
BgtAttendanceCountVO vo = countVOS.get(0);
|
||||
appTaskDetailVO.setCountVOS(DataUtil.fillMissingDates(countVOS, startOfMonth, date));
|
||||
appTaskDetailVO.setCountVOS(DataUtil.fillMissingDates(countVOS, startTime, date));
|
||||
appTaskDetailVO.setTotalNum(vo.getTotalNum());
|
||||
appTaskDetailVO.setReportToDutyNum(vo.getReportToDutyNum());
|
||||
appTaskDetailVO.setReportToDutyRate(vo.getReportToDutyNum()/vo.getTotalNum()*100);
|
||||
if(vo.getTotalNum()!=0){
|
||||
int rate = new BigDecimal(vo.getReportToDutyNum()).divide(new BigDecimal(vo.getTotalNum()), 2, RoundingMode.HALF_UP)
|
||||
.multiply(new BigDecimal(100)).intValue();
|
||||
appTaskDetailVO.setReportToDutyRate(rate);
|
||||
}
|
||||
|
||||
}
|
||||
return appTaskDetailVO;
|
||||
}
|
||||
@ -261,7 +279,9 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
|
||||
BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO();
|
||||
bgtProjectRecruitApplyQueryDTO.setRecruitIds(recruitIds);
|
||||
bgtProjectRecruitApplyQueryDTO.setStatus(Collections.singletonList(RecruitApplyStatus.WORKING.getCode()));
|
||||
appTaskDetailVO.setApplyList(recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO));
|
||||
List<BgtProjectRecruitApplyVO> vos = recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO);
|
||||
appTaskDetailVO.setTotal(vos.size());
|
||||
appTaskDetailVO.setApplyList(vos.subList(0, Math.min(vos.size(), 3)));
|
||||
return appTaskDetailVO;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user