优化总体考勤情况

This commit is contained in:
zt
2025-03-05 09:17:22 +08:00
parent 3427312b87
commit ee1cb51d75
7 changed files with 75 additions and 13 deletions

View File

@ -32,6 +32,11 @@ public class BgtProjectRecruitApply implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** 任务ID */
@Excel(name = "任务ID")
@ApiModelProperty("任务ID")
private Long taskId;
/** 招工ID */
@Excel(name = "招工ID")
@ApiModelProperty("招工ID")

View File

@ -29,4 +29,7 @@ public class BgtAttendanceDayDTO {
@ApiModelProperty("考勤类型1出勤 2缺勤 3迟到")
private Integer attendanceType;
@ApiModelProperty("任务ID")
private Long taskId;
}

View File

@ -30,6 +30,7 @@ public interface BgtProjectRecruitApplyMapper extends BaseMapperPlus<BgtProjectR
Page<BgtProjectRecruitApplyVO> dayAttendanceList(@Param("page")Page<BgtAttendanceDayDTO> queryDTOPage,@Param("dto") BgtAttendanceDayDTO dto);
Page<BgtProjectRecruitApplyVO> todayAttendanceList(@Param("page")Page<BgtAttendanceDayDTO> queryDTOPage,@Param("dto") BgtAttendanceDayDTO dto);
// 获取指定项目下的所有成员(分页)
Page<WgzAppUnderwayRes> underwayPage (@Param("page") Page<WgzAppUnderwayReq> page,@Param("req") WgzAppUnderwayReq req);

View File

@ -47,6 +47,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.*;
import static com.ruoyi.common.constants.BgtMessageConstant.*;
@ -309,8 +310,20 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
Page<BgtAttendanceDayDTO> queryDTOPage = new Page<>();
queryDTOPage.setCurrent(dto.getPageNum());
queryDTOPage.setSize(dto.getPageSize());
Page<BgtProjectRecruitApplyVO> queryVOPage = baseMapper.dayAttendanceList(queryDTOPage, dto);
// 获取当前时间
LocalTime currentTime = LocalTime.now();
// 定义目标时间12:10 12点才会录入当天所有人的考勤数据
LocalTime targetTime = LocalTime.of(12, 10);
// 判断当前时间是否在12:10之后
Page<BgtProjectRecruitApplyVO> queryVOPage;
if (currentTime.isAfter(targetTime)) {
queryVOPage = baseMapper.dayAttendanceList(queryDTOPage, dto);
} else {
queryVOPage = baseMapper.todayAttendanceList(queryDTOPage, dto);
}
return PageUtils.buildDataInfo(queryVOPage);
}
@Override

View File

@ -16,11 +16,9 @@ import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
import com.ruoyi.bgt.service.IBgtProjectTaskProgressService;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.ProjectTaskStatus;
import com.ruoyi.common.exception.BaseException;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.fbs.domain.FbsProjectTask;
import com.ruoyi.fbs.service.IFbsProjectTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -83,13 +81,14 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl<BgtProjec
@Override
public Boolean insert(BgtProjectTaskProgress bo) {
validEntityBeforeSave(bo);
if(bo.getProgress() == 100){
//更改任务状态
fbsProjectTaskService.lambdaUpdate().set(FbsProjectTask::getStatus, ProjectTaskStatus.COMPLETE.getCode())
.eq(FbsProjectTask::getId, bo.getTaskId()).update();
//批量退场
recruitApplyService.quitBatch(bo.getTaskId());
}
//应该审核之后
// if(bo.getProgress() == 100){
// //更改任务状态
// fbsProjectTaskService.lambdaUpdate().set(FbsProjectTask::getStatus, ProjectTaskStatus.COMPLETE.getCode())
// .eq(FbsProjectTask::getId, bo.getTaskId()).update();
// //批量退场
// recruitApplyService.quitBatch(bo.getTaskId());
// }
bo.setUploaderId(SecurityUtils.getAppUserId());
return save(bo);
}

View File

@ -3,7 +3,6 @@ package com.ruoyi.task;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Console;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.ruoyi.bgt.domain.BgtProjectRecruit;
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
@ -80,6 +79,20 @@ public class BusinessTask
Console.log("招工拒绝任务结束,此次拒绝任务个数:"+recruitList.size());
}
/**
* 务工者同意并到了进场时间修改状态为进场
*/
public void entry()
{
Console.log("开始招工进场任务");
recruitApplyService.<BgtProjectRecruitApply>lambdaUpdate()
.eq(BgtProjectRecruitApply::getEntryTime, LocalDate.now())
.eq(BgtProjectRecruitApply::getStatus,RecruitApplyStatus.WGZ_PASS.getCode())
.set(BgtProjectRecruitApply::getStatus,RecruitApplyStatus.BGT_REFUSE.getCode())
.update();
Console.log("招工进场任务结束!");
}
/**
* 上班缺卡

View File

@ -69,8 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHEN wa.late =1 THEN '迟到'
WHEN wa.early_leave =1 THEN '早退'
WHEN wa.missed_in = 0 OR wa.missed_out = 0 THEN '出勤'
WHEN wa.missed_in =1 and missed_out = 1 THEN '缺勤'
ELSE '未知状态'
ELSE '缺勤'
END AS attendance_status
from wgz_attendance wa
left join wgz_user wu on wa.user_id = wu.user_id
@ -89,6 +88,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</select>
<select id="todayAttendanceList" resultType="com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO">
SELECT bpra.id,
bpra.entry_time,
wu.user_id,
wu.phone,
wu.score,
wu.avatar_name,
wu.username,
wu.type_of_work,
bpr.recruit_name,
fpt.task_name,
CASE
WHEN wa.leave_mark_id IS NOT NULL THEN '请假'
WHEN wa.late = 1 THEN '迟到'
WHEN wa.early_leave = 1 THEN '早退'
WHEN wa.missed_in = 0 OR wa.missed_out = 0 THEN '出勤'
ELSE '缺勤'
END AS attendance_status
FROM bgt_project_recruit_apply bpra
LEFT JOIN wgz_user wu ON bpra.user_id = wu.user_id
LEFT JOIN wgz_attendance wa ON wa.user_id = wu.user_id AND wa.recruit_id = bpra.recruit_id AND wa.date = #{dto.date}
LEFT JOIN bgt_project_recruit bpr ON bpr.id = bpra.recruit_id
LEFT JOIN fbs_project_task fpt ON fpt.id = bpr.task_id
WHERE bpra.recruit_id IN (SELECT id
FROM bgt_project_recruit
WHERE task_id = #{dto.taskId});
</select>
<select id="underwayPage" resultType="com.ruoyi.wgz.bo.res.WgzAppUnderwayRes">
SELECT
a.entry_time,