This commit is contained in:
zt
2025-03-06 16:22:37 +08:00
parent 4570788d5e
commit c286edf99f
18 changed files with 208 additions and 163 deletions

View File

@ -1,6 +1,7 @@
package com.ruoyi.fbs.domain.vo;
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
import com.ruoyi.bgt.domain.vo.BgtDayAttendanceCountVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -27,7 +28,7 @@ public class AppTaskDetailAttendanceVO {
private Integer reportToDutyRate= 0;
@ApiModelProperty("考勤列表")
List<BgtAttendanceCountVO> countVOS;
List<BgtDayAttendanceCountVO> countVOS;

View File

@ -10,7 +10,7 @@ import com.ruoyi.bgt.bo.BgtProjectRecruitQueryBo;
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.BgtDayAttendanceCountVO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
@ -209,19 +209,18 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
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, startTime, date));
appTaskDetailVO.setTotalNum(vo.getTotalNum());
appTaskDetailVO.setReportToDutyNum(vo.getReportToDutyNum());
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);
}
List<BgtDayAttendanceCountVO> countVOS = attendanceService.countDayByTaskId(id, startTime, date);
// 补充缺失的天数
List<BgtDayAttendanceCountVO> bgtDayAttendanceCountVOS = DataUtil.fillMissingDates(countVOS, startTime, date);
//查询当天的总人数
Integer totalNum = attendanceService.dayTotalNum(id, date);
appTaskDetailVO.setTotalNum(totalNum);
//计算到岗率
if(totalNum!=0){
BgtDayAttendanceCountVO bgtDayAttendanceCountVO = bgtDayAttendanceCountVOS.get(bgtDayAttendanceCountVOS.size() - 1);
int rate = new BigDecimal(bgtDayAttendanceCountVO.getReportToDutyNum()).divide(new BigDecimal(totalNum), 2, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100)).intValue();
appTaskDetailVO.setReportToDutyRate(rate);
}
return appTaskDetailVO;
}