修改:招工列表、申请报名

This commit is contained in:
2025-02-25 19:22:52 +08:00
parent aeb17a9fb4
commit 43932d7555
15 changed files with 178 additions and 35 deletions

View File

@ -6,7 +6,9 @@ import com.ruoyi.bgt.domain.dto.BgtProjectRecruitQueryDTO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitVO;
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wgz.bo.req.WgzAppGetMessageListReq;
import com.ruoyi.wgz.bo.req.WgzAppJobListingReq;
import com.ruoyi.wgz.bo.req.WgzAppRegisteredProjectReq;
import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq;
import com.ruoyi.wgz.bo.res.*;
@ -37,4 +39,7 @@ public interface BgtProjectRecruitMapper extends BaseMapperPlus<BgtProjectRecrui
List<WgzAppCancelRegistrationProjectDetailsTwo> GetsTheMembersUnderTheCurrentProject (@Param("recruitId") Long recruitId);
TableDataInfo<WgzAppJobListingRes> userJobListing(@Param("page") Page<WgzAppJobListingReq> page);
}

View File

@ -7,8 +7,10 @@ import com.ruoyi.bgt.domain.vo.BgtProjectRecruitDetailVO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitVO;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wgz.bo.req.WgzAppJobListingReq;
import com.ruoyi.wgz.bo.req.WgzAppRegisteredProjectReq;
import com.ruoyi.wgz.bo.res.WgzAppCancelRegistrationProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppJobListingRes;
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppRegisteredProjectRes;
import org.springframework.validation.annotation.Validated;
@ -103,4 +105,9 @@ public interface IBgtProjectRecruitService extends IServicePlus<BgtProjectRecrui
*/
WgzAppCancelRegistrationProjectDetailsRes userCancelRegistrationProjectDetails(Long recruitId);
/**
* 招工列表
*/
TableDataInfo<WgzAppJobListingRes> userJobListing(@Validated WgzAppJobListingReq req);
}

View File

@ -205,6 +205,15 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
if (!Objects.equals(appById.getTypeOfWork(), byId.getTypeOfWork())){
throw new RuntimeException("工种不匹配!");
}
//4、判断当前用户是否已经申请过了如果已经申请过了就不能再次申请了
Integer integer = baseMapper.selectCount(
new LambdaQueryWrapper<BgtProjectRecruitApply>().
eq(BgtProjectRecruitApply::getUserId, appUserId).
eq(BgtProjectRecruitApply::getRecruitId, id)
);
if (integer>0){
throw new RuntimeException("已申请过了!不可再次申请!");
}
//3、插入数据
BgtProjectRecruitApply bgtProjectRecruitApply = new BgtProjectRecruitApply();
bgtProjectRecruitApply.setRecruitId(id);
@ -277,13 +286,36 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
wgzUserService.lambdaUpdate().set(WgzUser::getScore, newScore).eq(WgzUser::getUserId, dto.getUserId()).update();
return insert;
}
@Override
@Transactional
public Boolean userCancelRegistration(Long recruitApplyId) {
BgtProjectRecruitApply bgtProjectRecruitApply = new BgtProjectRecruitApply();
bgtProjectRecruitApply.setId(recruitApplyId);
bgtProjectRecruitApply.setStatus("7");
return baseMapper.updateById(bgtProjectRecruitApply) >0;
if(baseMapper.updateById(bgtProjectRecruitApply) >0){
Long appUserId = SecurityUtils.getAppUserId();
BgtProjectRecruitApply by = iBgtProjectRecruitApplyService.selectByUserIdProjectRecruitApplyId(appUserId);
BgtProjectRecruit appById = iBgtProjectRecruitService.getAppById(by.getUserId());
Map<String, String> mp = new HashMap<>();
mp.put("projectName",appById.getRecruitName());
//发送取消报名的系统消息
WgzMessage wgzMessage = new WgzMessage().
setSenderType(USERTYPE_SYSTEM).
setRecipientType(USERTYPE_WGZ).
setRecipientId(appUserId).
setHeadline(WgzAndBgtMessageConstant.wgzMessage(mp,"1")).
setSubheading(WgzAndBgtMessageConstant.wgzMessage(mp,"2")).
setTableId(bgtProjectRecruitApply.getId()).
setTableName(SqlHelper.table(BgtProjectRecruitApply.class).getTableName()).
setMessageLargeType(LARGE_OTHER).
setMessageSmallType(SMALL_SYSTEM);
if (!iWgzMessageService.sendAMessage(wgzMessage)){
throw new RuntimeException("系统消息发送失败!");
}
return true;
}
return false;
}
@ -299,6 +331,7 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
@Override
public Boolean userConfirmRegistration(WgzAppConfirmRegistrationReq req) {
BgtProjectRecruitApply apply = new BgtProjectRecruitApply().setId(req.getRecruitApplyId()).setStatus(req.getStatus());
//发送取消或拒绝的消息给包工头、系统
return this.updateById(apply);
}

View File

@ -21,8 +21,11 @@ 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 com.ruoyi.wgz.bo.req.WgzAppDailyRecordReq;
import com.ruoyi.wgz.bo.req.WgzAppJobListingReq;
import com.ruoyi.wgz.bo.req.WgzAppRegisteredProjectReq;
import com.ruoyi.wgz.bo.res.WgzAppCancelRegistrationProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppJobListingRes;
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppRegisteredProjectRes;
import com.ruoyi.wgz.bo.rests.WgzAppCancelRegistrationProjectDetailsTwo;
@ -186,4 +189,12 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
return res;
}
@Override
public TableDataInfo<WgzAppJobListingRes> userJobListing(WgzAppJobListingReq req) {
Page<WgzAppJobListingReq> pe = new Page<>();
pe.setCurrent(req.getPageNum());
pe.setSize(req.getPageSize());
return baseMapper.userJobListing(pe);
}
}

View File

@ -25,6 +25,8 @@ public class WgzAndBgtMessageConstant {
//【报名】系统给务工者提示
public static final String WGZ_SYSTEM_HEADLINE_APPLY = "您已申请【%s】项目";
public static final String WGZ_SYSTEM_SUBHEADING_APPLY = "您已成功申请到【%s】项目,请耐心等待回复!";
public static final String WGZ_SYSTEM_HEADLINE_APPLY_CANCEL = "您已申请取消【%s】项目";
public static final String WGZ_SYSTEM_SUBHEADING_APPLY_CANCEL = "您已成功取消【%s】项目,祝您早日找到心仪的工作!";
//【报名】务工者给包工头提示
public static final String WGZ_HEADLINE_APPLY = "务工者【%s】正在向你申请【%s】的岗位";
public static final String WGZ__SUBHEADING_APPLY = "务工者【%s】正在向你申请【%s】岗位您可点击查看更多信息";
@ -32,14 +34,21 @@ public class WgzAndBgtMessageConstant {
//务工者消息返回
public static String wgzMessage(Map<String, String> mp, String type) {
switch (type){
//系统申请报名提示
case "1":
return String.format(WGZ_SYSTEM_HEADLINE_APPLY, mp.get("projectName"));
case "2":
return String.format(WGZ_SYSTEM_SUBHEADING_APPLY, mp.get("projectName"));
//务工者向包工头申请报名提示
case "3":
return String.format(WGZ_HEADLINE_APPLY, mp.get("userName"), mp.get("post"));
case "4":
return String.format(WGZ__SUBHEADING_APPLY, mp.get("userName"),mp.get("post"));
//系统取消报名提示
case "5":
return String.format(WGZ_SYSTEM_HEADLINE_APPLY_CANCEL, mp.get("projectName"));
case "6":
return String.format(WGZ_SYSTEM_SUBHEADING_APPLY_CANCEL, mp.get("projectName"));
default:
return "未知类型";
}

View File

@ -0,0 +1,41 @@
package com.ruoyi.wgz.bo.req;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("日报打卡请求对象")
public class WgzAppDailyClockReq implements Serializable {
@ApiModelProperty("今日完成工作")
private String finishToday;
@ApiModelProperty("未完成工作")
private String unfinished;
@ApiModelProperty("明日工作")
private String workTomorrow;
@ApiModelProperty("协调与帮助")
private String coordinate;
@ApiModelProperty("附件,多个逗号分隔")
private String attachment;
@ApiModelProperty("日报位置")
private String pnchOsition;
}

View File

@ -14,12 +14,10 @@ import lombok.experimental.Accessors;
@Accessors(chain = true)
@ApiModel("获取消息列表请求参数")
public class WgzAppGetMessageListReq extends PageReq {
@ApiModelProperty("接收人")
@Hidden
@ApiModelProperty(value = "接收人",hidden = true)
private Long recipientId;
@ApiModelProperty("0 全部 1报名 2工资 3其他")
@Hidden
private String largeType;
@ApiModelProperty("largeType为3填写 (0补卡 1系统)")

View File

@ -1,5 +1,6 @@
package com.ruoyi.wgz.bo.req;
import com.ruoyi.common.bo.PageReq;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -10,17 +11,5 @@ import java.io.Serializable;
@Data
@ApiModel("首页-招工列表请求对象")
public class WgzAppJobListingReq implements Serializable {
/** 分页大小 */
@ApiModelProperty("分页大小")
private Integer pageSize;
/** 当前页数 */
@ApiModelProperty("当前页数")
private Integer pageNum;
@ApiModelProperty("创建者Id")
private Long userId;
@ApiModelProperty("招工名称")
private String recruitName;
public class WgzAppJobListingReq extends PageReq {
}

View File

@ -17,11 +17,10 @@ import java.time.LocalDateTime;
@Accessors(chain = true)
@ApiModel("项目进行中请求对象")
public class WgzAppUnderwayReq extends PageReq {
@ApiModelProperty("招工ID")
@ApiModelProperty("1进行中 2已完成")
private String type;
@ApiModelProperty("务工者唯一标识")
@Hidden
@ApiModelProperty(value = "务工者唯一标识",hidden = true)
private Long userId;
}

View File

@ -46,8 +46,9 @@ public class WgzAppJobListingRes implements Serializable {
@ApiModelProperty("工种")
private String typeOfWork;
@ApiModelProperty("申请者列表")
List<BgtProjectRecruitApplyVO> applylist;
@ApiModelProperty("申请者数量")
private Integer numberOfRegistered;

View File

@ -8,6 +8,7 @@ import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wgz.bo.WgzDailyClockQueryBo;
import com.ruoyi.wgz.bo.req.WgzAppDailyCalendarReq;
import com.ruoyi.wgz.bo.req.WgzAppDailyClockReq;
import com.ruoyi.wgz.bo.req.WgzAppDailyRecordReq;
import com.ruoyi.wgz.bo.res.WgzAppUserDailyRecordRes;
import com.ruoyi.wgz.bo.res.WgzUserDailyCalendarRes;
@ -74,6 +75,11 @@ public interface IWgzDailyClockService extends IServicePlus<WgzDailyClock> {
*/
WgzUserDailyCalendarRes userDailyCalendar(@Validated WgzAppDailyCalendarReq req);
/**
* 日报打卡
*/
Boolean userDailyClock(WgzAppDailyClockReq req);
/**
* 日报日历·日报记录(历史记录分页查询)
*/

View File

@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.bgt.domain.BgtProjectRecruit;
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
import com.ruoyi.bgt.domain.dto.BgtDailyClockListDTO;
import com.ruoyi.bgt.domain.dto.BgtDailyClockUpdateDTO;
import com.ruoyi.bgt.domain.vo.BgtDailyClockDetailVO;
import com.ruoyi.bgt.domain.vo.BgtDailyClockListVO;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
import com.ruoyi.bgt.service.IBgtUserService;
import com.ruoyi.common.core.domain.entity.BgtUser;
@ -20,6 +22,7 @@ import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.wgz.bo.WgzDailyClockQueryBo;
import com.ruoyi.wgz.bo.req.WgzAppDailyCalendarReq;
import com.ruoyi.wgz.bo.req.WgzAppDailyClockReq;
import com.ruoyi.wgz.bo.req.WgzAppDailyRecordReq;
import com.ruoyi.wgz.bo.res.WgzAppUserDailyRecordRes;
import com.ruoyi.wgz.bo.res.WgzUserDailyCalendarRes;
@ -28,6 +31,7 @@ import com.ruoyi.wgz.domain.WgzDailyClock;
import com.ruoyi.wgz.mapper.WgzDailyClockMapper;
import com.ruoyi.wgz.service.IWgzDailyClockService;
import com.ruoyi.wgz.service.IWgzLeaveService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -53,6 +57,12 @@ public class WgzDailyClockServiceImpl extends ServicePlusImpl<WgzDailyClockMappe
@Autowired
private IBgtProjectRecruitService recruitService;
@Autowired
private IBgtProjectRecruitApplyService iBgtProjectRecruitApplyService;
@Autowired
private IBgtProjectRecruitService iBgtProjectRecruitService;
@Override
public WgzDailyClock queryById(Long id){
return getById(id);
@ -167,7 +177,23 @@ public class WgzDailyClockServiceImpl extends ServicePlusImpl<WgzDailyClockMappe
return new WgzUserDailyCalendarRes().setDailyCalendar(fh);
}
@Override
@Override
public Boolean userDailyClock(WgzAppDailyClockReq req) {
//1、获取当前人、当前工的上下班时间范围
Long appUserId = SecurityUtils.getAppUserId();
BgtProjectRecruitApply by = iBgtProjectRecruitApplyService.selectByUserIdProjectRecruitApplyId(appUserId);
BgtProjectRecruit appById = iBgtProjectRecruitService.getAppById(by.getId());
//1、组装数据
WgzDailyClock dc = new WgzDailyClock();
BeanUtils.copyProperties(req,dc);
dc.setRecruitId(appUserId);
dc.setUserId(appUserId);
dc.setDilyTime(LocalDateTime.now());
dc.setAuditorUserId(appById.getUserId());
return baseMapper.insert(dc) > 0;
}
@Override
public TableDataInfo<WgzAppUserDailyRecordRes> userDailyRecord(WgzAppDailyRecordReq req) {
Page<WgzAppDailyRecordReq> pe = new Page<>();
pe.setCurrent(req.getPageNum());