优化总体考勤情况
This commit is contained in:
		| @ -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") | ||||
|  | ||||
| @ -29,4 +29,7 @@ public class BgtAttendanceDayDTO { | ||||
|  | ||||
| 	@ApiModelProperty("考勤类型(1出勤 2缺勤 3迟到)") | ||||
| 	private Integer attendanceType; | ||||
|  | ||||
| 	@ApiModelProperty("任务ID") | ||||
| 	private Long taskId; | ||||
| } | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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); | ||||
|     } | ||||
|  | ||||
| @ -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("招工进场任务结束!"); | ||||
| 	} | ||||
|  | ||||
|  | ||||
| 	/** | ||||
| 	 * 上班缺卡 | ||||
|  | ||||
| @ -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, | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 zt
					zt