diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/AuditStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/AuditStatus.java index f2e569f..7ae7c02 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/AuditStatus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/AuditStatus.java @@ -11,9 +11,9 @@ import java.util.List; public enum AuditStatus { UNREAD("0","未读"), - AUDIT("1", "审核中"), - PASS("2", "已审核"), - REFUSE("3", "未通过"), + AUDIT("1", "待审核"), + PASS("2", "已同意"), + REFUSE("3", "已拒绝"), ; private final String code; @@ -36,7 +36,14 @@ public enum AuditStatus } + // 获取审核状态列表 public static List getAudit(){ + // 将PASS和REFUSE的code值转换为List类型 return Arrays.asList(PASS.getCode(),REFUSE.getCode()); } + // 获取待审核的列表 + public static List getToAudit(){ + // 将UNREAD和AUDIT的code值转换为List类型 + return Arrays.asList(UNREAD.getCode(),AUDIT.getCode()); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtReissueacardUpdateDTO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtReissueacardUpdateDTO.java index dd1bc41..344bffd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtReissueacardUpdateDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtReissueacardUpdateDTO.java @@ -20,5 +20,7 @@ public class BgtReissueacardUpdateDTO { @ApiModelProperty("审核状态(0待审核 1审核中 2已同意 3已拒绝)") private String auditorType; + @ApiModelProperty("审核意见") + private String auditorOpinion; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtScoreDTO.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtScoreDTO.java index 881c6f1..7f55400 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtScoreDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/dto/BgtScoreDTO.java @@ -16,6 +16,8 @@ public class BgtScoreDTO { /** 招工ID */ @ApiModelProperty("招工ID") private Long recruitId; + @ApiModelProperty("招工申请ID") + private Long recruitApplyId; /** 被评人ID(务工者) */ @ApiModelProperty("被评人ID(务工者)") private Long userId; diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitApplyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitApplyServiceImpl.java index 8e38122..946444f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitApplyServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectRecruitApplyServiceImpl.java @@ -37,9 +37,7 @@ import com.ruoyi.wgz.bo.res.WgzAppUnderwayRes; import com.ruoyi.wgz.domain.WgzMessage; import com.ruoyi.wgz.domain.WgzScoreRecord; import com.ruoyi.wgz.domain.WgzUser; -import com.ruoyi.wgz.service.IWgzMessageService; -import com.ruoyi.wgz.service.IWgzScoreRecordService; -import com.ruoyi.wgz.service.IWgzUserService; +import com.ruoyi.wgz.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Async; @@ -93,6 +91,14 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl mp = new HashMap<>(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectTaskProgressServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectTaskProgressServiceImpl.java index 7182030..1c564b0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectTaskProgressServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtProjectTaskProgressServiceImpl.java @@ -12,15 +12,13 @@ import com.ruoyi.bgt.domain.dto.BgtProjectTaskProgressQueryDTO; import com.ruoyi.bgt.domain.vo.BgtProjectTaskProgressDetailVO; import com.ruoyi.bgt.domain.vo.BgtProjectTaskProgressVO; import com.ruoyi.bgt.mapper.BgtProjectTaskProgressMapper; -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.AuditStatus; import com.ruoyi.common.exception.BaseException; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.fbs.service.IFbsProjectTaskService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collection; @@ -36,14 +34,6 @@ import java.util.Map; @Service public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl implements IBgtProjectTaskProgressService { - @Autowired - private IFbsProjectTaskService fbsProjectTaskService; - - @Autowired - private IBgtProjectRecruitApplyService recruitApplyService; - - - @Override public BgtProjectTaskProgress queryById(Long id){ return getById(id); @@ -140,6 +130,7 @@ public class BgtProjectTaskProgressServiceImpl extends ServicePlusImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(BgtProjectTaskProgress::getTaskId, taskId); + wrapper.eq(BgtProjectTaskProgress::getAuditStatus, AuditStatus.PASS.getCode()); wrapper.orderByDesc(BgtProjectTaskProgress::getProgress); List list = baseMapper.selectList(wrapper); return CollectionUtil.isEmpty(list)?0:list.get(0).getProgress(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtUserServiceImpl.java index a37385a..1459bf6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/service/impl/BgtUserServiceImpl.java @@ -27,6 +27,9 @@ import java.util.Collection; import java.util.List; import java.util.Map; +import static com.ruoyi.common.util.ValidUtil.isValidBankCard; +import static com.ruoyi.common.util.ValidUtil.isValidIdentityCard; + /** * APP包工头Service业务层处理 * @@ -128,6 +131,15 @@ public class BgtUserServiceImpl extends ServicePlusImpl if(bgtUser == null){ throw new BaseException("用户不存在"); } + // 校验身份证号 + if (!isValidIdentityCard(dto.getIdentityCard())) { + throw new BaseException("身份证号格式不正确"); + } + + // 校验银行卡号 + if (!isValidBankCard(dto.getCardNo())) { + throw new BaseException("银行卡号格式不正确"); + } BeanUtil.copyProperties(dto, bgtUser); for (AnnexDTO annexDTO:dto.getAnnexList()){ annexDTO.setUserId(dto.getUserId()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/common/util/ValidUtil.java b/ruoyi-system/src/main/java/com/ruoyi/common/util/ValidUtil.java new file mode 100644 index 0000000..d09bbd2 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/common/util/ValidUtil.java @@ -0,0 +1,19 @@ +package com.ruoyi.common.util; + +/** + * 校验工具类 + * @author zhangqiao + * @since 2020/4/16 16:05 + */ +public class ValidUtil { + + public static boolean isValidIdentityCard(String identityCard) { + // 简单的身份证号校验逻辑,可以根据需要进行更复杂的校验 + return identityCard != null && identityCard.matches("\\d{15}|\\d{18}"); + } + + public static boolean isValidBankCard(String bankCard) { + // 简单的银行卡号校验逻辑,可以根据需要进行更复杂的校验 + return bankCard != null && bankCard.matches("\\d{16,19}"); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java b/ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java index 57d99e5..010992c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java +++ b/ruoyi-system/src/main/java/com/ruoyi/task/BusinessTask.java @@ -103,6 +103,46 @@ public class BusinessTask Console.log("招工进场任务结束!"); } + /** + * 自动给两个月前的任务下的人员默认5分的评价 + */ + public void score() + { + Console.log("开始进行务工评价任务"); + //搜索时间在两个月前的已完结的任务 + List taskList = iFbsProjectTaskService.list(Wrappers.lambdaQuery() + .eq(FbsProjectTask::getStatus, "2") + .lt(FbsProjectTask::getTaskBeginTime, LocalDate.now().plusMonths(-2))); + List taskIds = taskList.stream().map(FbsProjectTask::getId).collect(Collectors.toList()); + if(CollectionUtil.isNotEmpty(taskIds)){ + //任务下的招工 + List recruitList = recruitService.list(Wrappers.lambdaQuery() + .in(BgtProjectRecruit::getTaskId, taskIds)); + List recruitIds = recruitList.stream().map(BgtProjectRecruit::getId).collect(Collectors.toList()); + if(CollectionUtil.isNotEmpty(recruitIds)){ + //招工下的人员 + List applyList = recruitApplyService.list(Wrappers.lambdaQuery() + .in(BgtProjectRecruitApply::getRecruitId, recruitIds)); + //筛选已离场的 + } + + +// +// iFbsProjectTaskService.lambdaUpdate().in(FbsProjectTask::getId,collect) +// .set(FbsProjectTask::getStatus, "3") +// .update(); +// iWgzMessageService.saveBatch(WgzAndBgtMessageConstant.getScoreMessage(collect)); + } + + + recruitApplyService.lambdaUpdate() + .le(BgtProjectRecruitApply::getEntryTime, LocalDate.now()) + .eq(BgtProjectRecruitApply::getStatus,RecruitApplyStatus.WGZ_PASS.getCode()) + .set(BgtProjectRecruitApply::getStatus,RecruitApplyStatus.BGT_REFUSE.getCode()) + .update(); + Console.log("招工进场任务结束!"); + } + /** * 上班缺卡 diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzScoreRecord.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzScoreRecord.java index e2953bd..221769e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzScoreRecord.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/domain/WgzScoreRecord.java @@ -36,6 +36,9 @@ public class WgzScoreRecord implements Serializable { @ApiModelProperty("招工ID") private Long recruitId; + @ApiModelProperty("招工申请ID") + private Long recruitApplyId; + /** 被评人ID(务工者) */ @Excel(name = "被评人ID(务工者)") @ApiModelProperty("被评人ID(务工者)") diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzLeaveService.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzLeaveService.java index e5e295e..788c7b6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzLeaveService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzLeaveService.java @@ -1,7 +1,6 @@ package com.ruoyi.wgz.service; import com.ruoyi.bgt.domain.dto.BgtLeaveUpdateDTO; -import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.mybatisplus.core.IServicePlus; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.wgz.bo.WgzLeaveQueryBo; @@ -10,7 +9,6 @@ import com.ruoyi.wgz.bo.req.WgzAppLeaveHistoryListPageReq; import com.ruoyi.wgz.bo.req.WgzAppSubmitLeaveReq; import com.ruoyi.wgz.bo.res.WgzAppLeaveHistoryListPageRes; import com.ruoyi.wgz.bo.res.WgzAppUserLeaveDetailsRes; -import com.ruoyi.wgz.bo.res.WgzAppUserReplacementCardRecordDetailsRes; import com.ruoyi.wgz.domain.WgzLeave; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PathVariable; @@ -110,4 +108,9 @@ public interface IWgzLeaveService extends IServicePlus { */ Boolean bgtAudit(BgtLeaveUpdateDTO dto); + /** + * 批量拒绝请假 + */ + void refuseBatch(Long recruitId,Long userId); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzReissueacardService.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzReissueacardService.java index 58f0e2b..4d313fd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzReissueacardService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzReissueacardService.java @@ -11,10 +11,8 @@ import com.ruoyi.wgz.bo.res.WgzAppUserReplacementCardRecordDetailsRes; import com.ruoyi.wgz.bo.res.WgzReplacementCardRecordRes; import com.ruoyi.wgz.domain.WgzReissueacard; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; -import javax.validation.constraints.NotNull; import java.util.Collection; import java.util.List; @@ -92,4 +90,9 @@ public interface IWgzReissueacardService extends IServicePlus { WgzAppUserReplacementCardRecordDetailsRes userReplacementCardRecordDetails(Long id); + /** + * 拒绝批量操作 + */ + void refuseBatch(Long recruitId,Long userId); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzLeaveServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzLeaveServiceImpl.java index 4c859b6..3a6fbe9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzLeaveServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzLeaveServiceImpl.java @@ -27,7 +27,6 @@ import com.ruoyi.wgz.bo.req.WgzAppLeaveHistoryListPageReq; import com.ruoyi.wgz.bo.req.WgzAppSubmitLeaveReq; import com.ruoyi.wgz.bo.res.WgzAppLeaveHistoryListPageRes; import com.ruoyi.wgz.bo.res.WgzAppUserLeaveDetailsRes; -import com.ruoyi.wgz.bo.res.WgzAppUserReplacementCardRecordDetailsRes; import com.ruoyi.wgz.domain.WgzAttendance; import com.ruoyi.wgz.domain.WgzLeave; import com.ruoyi.wgz.domain.WgzMessage; @@ -306,26 +305,44 @@ public class WgzLeaveServiceImpl extends ServicePlusImpl list = attendanceService.list(Wrappers.lambdaQuery() - .eq(WgzAttendance::getRecruitId, recruit.getId()) - .eq(WgzAttendance::getUserId, wgzLeave.getUserId()) - .eq(WgzAttendance::getDate, wgzLeave.getStartTime().toLocalDate())); - if(CollectionUtil.isNotEmpty(list)){ - WgzAttendance wgzAttendance = list.get(0); - wgzAttendance.setLeaveMarkId(wgzLeave.getId()); - wgzAttendance.setExceptionType("7"); - attendanceService.updateById(wgzAttendance); - }else { - WgzAttendance wgzAttendance = new WgzAttendance(); - wgzAttendance.setRecruitId(recruit.getId()); - wgzAttendance.setUserId(wgzLeave.getUserId()); - wgzAttendance.setLeaveMarkId(wgzLeave.getId()); - wgzAttendance.setDailyWage(recruit.getRecruitAmount()); - wgzAttendance.setDate(wgzLeave.getStartTime().toLocalDate()); - wgzAttendance.setExceptionType("7"); - attendanceService.save(wgzAttendance); + if(AuditStatus.PASS.getCode().equals(dto.getAuditorType())){ + //考勤信息 + List list = attendanceService.list(Wrappers.lambdaQuery() + .eq(WgzAttendance::getRecruitId, recruit.getId()) + .eq(WgzAttendance::getUserId, wgzLeave.getUserId()) + .eq(WgzAttendance::getDate, wgzLeave.getStartTime().toLocalDate())); + if(CollectionUtil.isNotEmpty(list)){ + WgzAttendance wgzAttendance = list.get(0); + wgzAttendance.setLeaveMarkId(wgzLeave.getId()); + wgzAttendance.setExceptionType("7"); + attendanceService.updateById(wgzAttendance); + }else { + WgzAttendance wgzAttendance = new WgzAttendance(); + wgzAttendance.setRecruitId(recruit.getId()); + wgzAttendance.setUserId(wgzLeave.getUserId()); + wgzAttendance.setLeaveMarkId(wgzLeave.getId()); + wgzAttendance.setDailyWage(recruit.getRecruitAmount()); + wgzAttendance.setDate(wgzLeave.getStartTime().toLocalDate()); + wgzAttendance.setExceptionType("7"); + attendanceService.save(wgzAttendance); + } } return updateById(wgzLeave); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void refuseBatch(Long recruitId, Long userId) { + List list = list(Wrappers.lambdaQuery() + .eq(WgzLeave::getRecruitId, recruitId) + .eq(WgzLeave::getUserId, userId) + .in(WgzLeave::getAuditorType, AuditStatus.getToAudit())); + for(WgzLeave wgzLeave : list){ + BgtLeaveUpdateDTO dto = new BgtLeaveUpdateDTO(); + dto.setId(wgzLeave.getId()); + dto.setAuditorType(AuditStatus.REFUSE.getCode()); + dto.setAuditorOpinion("您已退场"); + bgtAudit(dto); + } + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzReissueacardServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzReissueacardServiceImpl.java index ea01ed6..bc65ed8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzReissueacardServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzReissueacardServiceImpl.java @@ -17,6 +17,7 @@ import com.ruoyi.bgt.service.IBgtProjectRecruitService; import com.ruoyi.common.constants.WgzAndBgtMessageConstant; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.AuditStatus; import com.ruoyi.common.util.LocalDateToChineseWeekday; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.SecurityUtils; @@ -40,7 +41,6 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; import static com.ruoyi.common.constants.BgtMessageConstant.*; @@ -243,39 +243,42 @@ public class WgzReissueacardServiceImpl extends ServicePlusImpl mp = new HashMap<>(); mp.put("projectName", iBgtProjectRecruitService.getById(byId.getRecruitId()).getRecruitName()); mp.put("auditor", SecurityUtils.getUsername()); - Map map = bgtMessage(mp, BGT_TYPE_MAKE_UP, true); + Map map = bgtMessage(mp, BGT_TYPE_MAKE_UP, isPass); WgzMessage wgzMessage = new WgzMessage() .setSenderType(USERTYPE_BGT) .setSenderId(SecurityUtils.getAppUserId()) @@ -297,4 +300,20 @@ public class WgzReissueacardServiceImpl extends ServicePlusImpl list = list(new LambdaQueryWrapper() + .eq(WgzReissueacard::getRecruitId, recruitId) + .eq(WgzReissueacard::getUserId, userId) + .in(WgzReissueacard::getAuditorType,AuditStatus.getToAudit())); + for (WgzReissueacard wgzReissueacard : list) { + BgtReissueacardUpdateDTO bgtReissueacardUpdateDTO = new BgtReissueacardUpdateDTO(); + bgtReissueacardUpdateDTO.setId(wgzReissueacard.getId()); + bgtReissueacardUpdateDTO.setAuditorType(AuditStatus.REFUSE.getCode()); + bgtReissueacardUpdateDTO.setAuditorOpinion("您已退场"); + appUpdate(bgtReissueacardUpdateDTO); + } + } } diff --git a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml index 62fd446..2489a13 100644 --- a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join wgz_user wu on bpra.user_id = wu.user_id left join bgt_project_recruit bpr on bpr.id = bpra.recruit_id left join fbs_project_task fpt on fpt.id = bpr.task_id - left join wgz_score_record wsr on bpra.user_id = wsr.user_id and bpra.recruit_id = wsr.recruit_id + left join wgz_score_record wsr on bpra.user_id = wsr.user_id and bpra.id = wsr.recruit_apply_id and wu.username like concat('%', #{dto.username}, '%') @@ -222,11 +222,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" wu.type_of_work, bpr.recruit_name, fpt.task_name, - bpr.task_id + bpr.task_id, + wsr.score as hasScore from bgt_project_recruit_apply bpra left join wgz_user wu on bpra.user_id = wu.user_id left join bgt_project_recruit bpr on bpr.id = bpra.recruit_id left join fbs_project_task fpt on fpt.id = bpr.task_id + left join wgz_score_record wsr on bpra.user_id = wsr.user_id and bpra.id = wsr.recruit_apply_id and wu.username like concat('%', #{dto.username}, '%')