修改用户通用附件获取

This commit is contained in:
2025-02-25 17:59:04 +08:00
parent 293560e4a3
commit 02c2960af4
16 changed files with 219 additions and 45 deletions

View File

@ -6,12 +6,10 @@ 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.wgz.bo.req.WgzAppGetMessageListReq;
import com.ruoyi.wgz.bo.req.WgzAppRegisteredProjectReq;
import com.ruoyi.wgz.bo.req.WgzAppUnderwayReq;
import com.ruoyi.wgz.bo.res.WgzAppCancelRegistrationProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppRegisteredProjectRes;
import com.ruoyi.wgz.bo.res.WgzAppUnderwayRes;
import com.ruoyi.wgz.bo.res.*;
import com.ruoyi.wgz.bo.rests.WgzAppCancelRegistrationProjectDetailsTwo;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Param;
@ -37,4 +35,6 @@ public interface BgtProjectRecruitMapper extends BaseMapperPlus<BgtProjectRecrui
// 获取指定项目下的所有成员
List<WgzAppCancelRegistrationProjectDetailsTwo> GetsTheMembersUnderTheCurrentProject (@Param("recruitId") Long recruitId);
}

View File

@ -115,7 +115,7 @@ public interface IBgtProjectRecruitApplyService extends IServicePlus<BgtProjectR
/**
* 务工者取消报名
*/
Boolean userCancelRegistration(Long recruitId);
Boolean userCancelRegistration(Long recruitApplyId);
/**
* 项目进行中

View File

@ -171,11 +171,10 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
*/
@Override
public BgtProjectRecruitApply selectByUserIdProjectRecruitApplyId(Long id) {
String[] strings = {"3","5"};
LambdaQueryWrapper<BgtProjectRecruitApply> lqw = Wrappers.lambdaQuery();
lqw.eq(BgtProjectRecruitApply::getUserId, id).
eq(BgtProjectRecruitApply::getStatus, "3"); //包工头同意、务工者同意才算进场ok
// isNotNull(BgtProjectRecruitApply::getEntryTime).
// ne(BgtProjectRecruitApply::getEntryTime, "");
in(BgtProjectRecruitApply::getStatus, strings); //包工头+务工者同意 or 进场 才算进场ok
List<BgtProjectRecruitApply> bgtProjectRecruitApplies = baseMapper.selectList(lqw);
if (bgtProjectRecruitApplies.size()>1){
throw new RuntimeException("异常,查询到用户同时在多个工地务工!");
@ -280,8 +279,11 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
}
@Override
@Transactional
public Boolean userCancelRegistration(Long recruitId) {
return baseMapper.deleteById(new LambdaQueryWrapper<BgtProjectRecruitApply>().eq(BgtProjectRecruitApply::getRecruitId, recruitId)) >0;
public Boolean userCancelRegistration(Long recruitApplyId) {
BgtProjectRecruitApply bgtProjectRecruitApply = new BgtProjectRecruitApply();
bgtProjectRecruitApply.setId(recruitApplyId);
bgtProjectRecruitApply.setStatus("7");
return baseMapper.updateById(bgtProjectRecruitApply) >0;
}
@ -296,10 +298,8 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
@Override
public Boolean userConfirmRegistration(WgzAppConfirmRegistrationReq req) {
//1、获取当前用户
Long appUserId = SecurityUtils.getAppUserId();
//2、当前用户+项目ID确认
return null;
BgtProjectRecruitApply apply = new BgtProjectRecruitApply().setId(req.getRecruitApplyId()).setStatus(req.getStatus());
return this.updateById(apply);
}
}

View File

@ -45,6 +45,9 @@ public class AnnexQueryBo extends BaseEntity {
/** 用户类型 */
@ApiModelProperty("用户类型")
private String userType;
/** 招工ID */
@ApiModelProperty("招工ID")
private Long recruitId;
/** 附件类型 */
@ApiModelProperty("附件类型")
private String annexType;

View File

@ -74,4 +74,9 @@ public interface IAnnexService extends IServicePlus<Annex> {
* 根据表自增ID来删除指定附件数据并删除对应的资源
*/
Boolean deleteByIds(Long id);
/**
* 根据务工者唯一标识+招工标识 得到附件信息
*/
List<Annex> findByUserIdAndRecruitId(Long userId,Long recruitId,String[] types);
}

View File

@ -24,6 +24,8 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.ruoyi.common.constant.Constants.WGZ;
/**
* 附件Service业务层处理
*
@ -56,6 +58,8 @@ public class AnnexServiceImpl extends ServicePlusImpl<AnnexMapper, Annex> implem
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<Annex> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUserId() != null, Annex::getUserId, bo.getUserId());
lqw.eq(StrUtil.isNotBlank(bo.getUserType()), Annex::getUserType, bo.getUserType());
lqw.eq(bo.getRecruitId() != null, Annex::getRecruitId, bo.getRecruitId());
lqw.eq(StrUtil.isNotBlank(bo.getAnnexType()), Annex::getAnnexType, bo.getAnnexType());
lqw.like(StrUtil.isNotBlank(bo.getAnnexName()), Annex::getAnnexName, bo.getAnnexName());
lqw.eq(StrUtil.isNotBlank(bo.getAnnexUrl()), Annex::getAnnexUrl, bo.getAnnexUrl());
@ -128,4 +132,14 @@ public class AnnexServiceImpl extends ServicePlusImpl<AnnexMapper, Annex> implem
}
return true;
}
@Override
public List<Annex> findByUserIdAndRecruitId(Long userId, Long recruitId, String[] types) {
LambdaQueryWrapper<Annex> wra = new LambdaQueryWrapper<Annex>().
eq(Annex::getUserType,WGZ).
eq(Annex::getUserId,userId).
eq(Annex::getRecruitId,recruitId).
in(Annex::getAnnexType,types);
return baseMapper.selectList(wra);
}
}

View File

@ -8,6 +8,7 @@ import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.Year;
@ -17,13 +18,9 @@ import java.time.Year;
@Accessors(chain = true)
@ApiModel("务工者APP-实名认证·附件结构请求对象")
public class WgzAppAttachmentAcquisitionReq implements Serializable {
@ApiModelProperty("唯一标识")
@NotNull(message = "唯一标识不能为空")
private Long userId;
@ApiModelProperty("0资格证书 1劳动合同 2保单")
@NotNull(message = "唯一标识不能为空")
@Size(min = 1, message = "唯一标识数组必须至少包含一个元素")
@ApiModelProperty("0资格证书 1劳动合同 2保单 3入场材料 4电子税票 5工作明细报告")
@Pattern(regexp = "^[0-5]$", message = "status 只能是 0 到 5 之间的数字")
private String[] specifiedAttachment;
}

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
@Data
@ -14,8 +15,9 @@ import java.io.Serializable;
@ApiModel("确认|拒绝报名请求对象")
public class WgzAppConfirmRegistrationReq implements Serializable {
@ApiModelProperty("招工ID")
private Long recruitId;
private Long recruitApplyId;
@ApiModelProperty("0拒绝 1确认")
@ApiModelProperty("3务工者同意 4务工者拒绝 ")
@Pattern(regexp = "^(3|4)$", message = "status 只能是 3 或 4")
private String status;
}

View File

@ -20,11 +20,14 @@ import java.time.LocalTime;
@Accessors(chain = true)
@ApiModel("已报名项目返回对象")
public class WgzAppRegisteredProjectRes implements Serializable {
@ApiModelProperty("主键ID")
@ApiModelProperty("招工ID")
private Long id;
@ApiModelProperty("项目ID")
private Long projectId;
// @ApiModelProperty("招工ID")
// private Long projectId;
@ApiModelProperty("招工申请ID")
private Long recruitApplyId;
@ApiModelProperty("招工名称")
private String recruitName;

View File

@ -0,0 +1,72 @@
package com.ruoyi.wgz.bo.res;
import com.ruoyi.common.domain.Annex;
import com.ruoyi.wgz.bo.rests.WgzAppCancelRegistrationProjectDetailsTwo;
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.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("消息报名信息返回对象")
public class WgzAppRegistrationInformationRes implements Serializable {
@ApiModelProperty("招工ID")
private Long recruitId;
@ApiModelProperty("招工申请ID")
private Long recruitApplyId;
//==============
@ApiModelProperty("封面图(多个逗号分隔)")
private String coverPlan;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("招工名称")
private String recruitName;
@ApiModelProperty("招工金额")
private BigDecimal recruitAmount;
@ApiModelProperty("招工数量")
private Integer recruitStaffNum;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("任务地址")
private String taskAddress;
@ApiModelProperty("招工描述")
private String subDescribe;
@ApiModelProperty("开工日期")
private LocalDate recruitWorkBeginTime;
@ApiModelProperty("进场日期")
private LocalDate entryTime;
@ApiModelProperty("联系人")
private String recruitContactPerson;
@ApiModelProperty("联系电话")
private String recruitContactPhone;
@ApiModelProperty("备注")
private String remark;
// @ApiModelProperty("附件实体数据")
// private List<Annex> annex;
}

View File

@ -5,6 +5,7 @@ import com.ruoyi.bgt.domain.dto.BgtDailyClockListDTO;
import com.ruoyi.bgt.domain.vo.BgtDailyClockListVO;
import com.ruoyi.wgz.bo.req.WgzAppGetMessageListReq;
import com.ruoyi.wgz.bo.res.WgzAppGetMessageListRes;
import com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes;
import com.ruoyi.wgz.domain.WgzMessage;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
@ -25,4 +26,7 @@ import java.util.Map;
public interface WgzMessageMapper extends BaseMapperPlus<WgzMessage> {
Page<WgzAppGetMessageListRes> userGetMessageList(@Param("page") Page<WgzAppGetMessageListReq> page);
// //根据招工id获取到招工的信息+附件
WgzAppRegistrationInformationRes findByRecruitIdData(@Param("recruitId") Long recruitId);
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.wgz.service;
import com.ruoyi.wgz.bo.req.WgzAppGetMessageListReq;
import com.ruoyi.wgz.bo.res.WgzAppGetMessageListRes;
import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes;
import com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes;
import com.ruoyi.wgz.domain.WgzMessage;
import com.ruoyi.wgz.bo.WgzMessageQueryBo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
@ -78,4 +79,9 @@ public interface IWgzMessageService extends IServicePlus<WgzMessage> {
* 消息列表
*/
TableDataInfo<WgzAppGetMessageListRes> userGetMessageList(@Validated WgzAppGetMessageListReq req);
/**
* 根据消息招工申请信息的主键ID去获取招工信息
*/
WgzAppRegistrationInformationRes userRegistrationInformation(Long messageId);
}

View File

@ -3,7 +3,11 @@ package com.ruoyi.wgz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.bgt.mapper.BgtProjectRecruitMapper;
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.domain.Annex;
import com.ruoyi.common.service.IAnnexService;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.core.page.PagePlus;
import com.ruoyi.common.core.page.TableDataInfo;
@ -13,6 +17,7 @@ import com.ruoyi.wgz.bo.req.WgzAppGetMessageListReq;
import com.ruoyi.wgz.bo.req.WgzAppLeaveHistoryListPageReq;
import com.ruoyi.wgz.bo.res.WgzAppGetMessageListRes;
import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes;
import com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes;
import com.ruoyi.wgz.bo.rests.WgzAppMessageTypeStatisticsTwo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
@ -42,6 +47,9 @@ public class WgzMessageServiceImpl extends ServicePlusImpl<WgzMessageMapper, Wgz
@Autowired
private ISysDictTypeService dictTypeService;
@Autowired
private IAnnexService annexService;
@Override
public WgzMessage queryById(Long id){
return getById(id);
@ -149,4 +157,17 @@ public class WgzMessageServiceImpl extends ServicePlusImpl<WgzMessageMapper, Wgz
queryDTOPage.setSize(req.getPageSize());
return PageUtils.buildDataInfo(baseMapper.userGetMessageList(queryDTOPage));
}
@Override
public WgzAppRegistrationInformationRes userRegistrationInformation(Long messageId) {
Long appUserId = SecurityUtils.getAppUserId();
//1、获取当前消息的招工ID
WgzMessage byId = this.getById(messageId);
//2、根据招工ID得到招工信息及附件
WgzAppRegistrationInformationRes byRecruitIdData = baseMapper.findByRecruitIdData(byId.getId());
// List<Annex> byUserIdAndRecruitId = annexService.findByUserIdAndRecruitId(appUserId, byId.getId(), new String[]{"1"});
// byRecruitIdData.setAnnex(null);
return byRecruitIdData;
}
}