修改消息小类型的全部查询

This commit is contained in:
2025-02-28 11:29:32 +08:00
parent 31200b4a8a
commit 900265b8b2
15 changed files with 213 additions and 82 deletions

View File

@ -343,7 +343,7 @@ public class WgzAppController {
/** /**
* 【首页】【已报名项目】 已报名项目 * 【首页】【已报名项目】 已报名项目
*/ */
@ApiOperation("【首页】【已报名项目】 已报名项目") @ApiOperation("【首页】【已报名项目】 已报名项目")
//@PreAuthorize("@ss.hasPermi('wgzApp:user:userRegisteredProject')") //@PreAuthorize("@ss.hasPermi('wgzApp:user:userRegisteredProject')")
@GetMapping("/WgzAppUserRegisteredProject") @GetMapping("/WgzAppUserRegisteredProject")
public TableDataInfo<WgzAppRegisteredProjectRes> userRegisteredProject(@Validated WgzAppRegisteredProjectReq req) { public TableDataInfo<WgzAppRegisteredProjectRes> userRegisteredProject(@Validated WgzAppRegisteredProjectReq req) {
@ -462,7 +462,7 @@ public class WgzAppController {
} }
/** /**
* 【消息】获取消息列表-0全部 1报名 2工资 3其他 (打卡、系统) * 【消息】获取消息列表
*/ */
@ApiOperation("【消息】获取消息列表") @ApiOperation("【消息】获取消息列表")
//@PreAuthorize("@ss.hasPermi('wgzApp:user:userGetMessageList')") //@PreAuthorize("@ss.hasPermi('wgzApp:user:userGetMessageList')")

View File

@ -39,7 +39,7 @@ public interface BgtProjectRecruitMapper extends BaseMapperPlus<BgtProjectRecrui
List<WgzAppCancelRegistrationProjectDetailsTwo> GetsTheMembersUnderTheCurrentProject (@Param("recruitId") Long recruitId); List<WgzAppCancelRegistrationProjectDetailsTwo> GetsTheMembersUnderTheCurrentProject (@Param("recruitId") Long recruitId);
Page<WgzAppJobListingRes> userJobListing(@Param("page") Page<WgzAppJobListingReq> page); Page<WgzAppJobListingRes> userJobListing(@Param("page") Page<WgzAppJobListingReq> page,@Param("req") WgzAppJobListingReq req);
} }

View File

@ -209,7 +209,7 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
//1、获取项目基础信息 //1、获取项目基础信息
WgzAppProjectDetailsRes wgzAppProjectDetailsRes = baseMapper.userProjectDetails(recruitId); WgzAppProjectDetailsRes wgzAppProjectDetailsRes = baseMapper.userProjectDetails(recruitId);
//2、获取当前项目下的成员 //2、获取当前项目下的成员
List<WgzAppCancelRegistrationProjectDetailsTwo> wgzUser = baseMapper.GetsTheMembersUnderTheCurrentProject(recruitId); List<WgzAppCancelRegistrationProjectDetailsTwo> wgzUser = baseMapper.GetsTheMembersUnderTheCurrentProject(wgzAppProjectDetailsRes.getId());
//3、数据组装 //3、数据组装
WgzAppCancelRegistrationProjectDetailsRes res = new WgzAppCancelRegistrationProjectDetailsRes(); WgzAppCancelRegistrationProjectDetailsRes res = new WgzAppCancelRegistrationProjectDetailsRes();
BeanUtils.copyProperties(wgzAppProjectDetailsRes,res); BeanUtils.copyProperties(wgzAppProjectDetailsRes,res);
@ -220,10 +220,13 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
@Override @Override
public TableDataInfo<WgzAppJobListingRes> userJobListing(WgzAppJobListingReq req) { public TableDataInfo<WgzAppJobListingRes> userJobListing(WgzAppJobListingReq req) {
//获取当前用户
Long appUserId = SecurityUtils.getAppUserId();
req.setUserId(appUserId);
Page<WgzAppJobListingReq> pe = new Page<>(); Page<WgzAppJobListingReq> pe = new Page<>();
pe.setCurrent(req.getPageNum()); pe.setCurrent(req.getPageNum());
pe.setSize(req.getPageSize()); pe.setSize(req.getPageSize());
return PageUtils.buildDataInfo(baseMapper.userJobListing(pe)); return PageUtils.buildDataInfo(baseMapper.userJobListing(pe,req));
} }
} }

View File

@ -17,9 +17,9 @@ public class WgzAppGetMessageListReq extends PageReq {
@ApiModelProperty(value = "接收人",hidden = true) @ApiModelProperty(value = "接收人",hidden = true)
private Long recipientId; private Long recipientId;
@ApiModelProperty("0 全部 1报名 2工资 3其他") @ApiModelProperty("字典message_large_type")
private String largeType; private String largeType;
@ApiModelProperty("largeType为3填写 (0补卡 1系统)") @ApiModelProperty("字典message_small_typelargeType为3填写")
private String smallType; private String smallType;
} }

View File

@ -7,9 +7,12 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
@ApiModel("首页-招工列表请求对象") @ApiModel("首页-招工列表请求对象")
public class WgzAppJobListingReq extends PageReq { public class WgzAppJobListingReq extends PageReq {
@ApiModelProperty(value = "唯一标识",hidden = true)
private Long userId;
} }

View File

@ -19,9 +19,10 @@ import java.io.Serializable;
public class WgzAppSubmitTheClockReq implements Serializable { public class WgzAppSubmitTheClockReq implements Serializable {
@ApiModelProperty("上下班打卡标识0上班 1下班") @ApiModelProperty("上下班打卡标识0上班 1下班")
@NotBlank(message = "上下班打卡标识不能为空") @NotBlank(message = "上下班打卡标识不能为空")
@Pattern(regexp = "[01]", message = "上下班打卡标识只能为 0 或 1") @Pattern(regexp = "^[01]$", message = "上下班打卡标识只能是0或1")
private String type; private String type;
@ApiModelProperty("打卡位置") @ApiModelProperty("打卡位置")
@NotBlank(message = "打卡位置不能为空") @NotBlank(message = "打卡位置不能为空")
private String pnchOsition; private String pnchOsition;

View File

@ -33,6 +33,12 @@ public class WgzAppGetMessageListRes implements Serializable {
@ApiModelProperty("读状态0未读 1已读") @ApiModelProperty("读状态0未读 1已读")
private String readStatus; private String readStatus;
@ApiModelProperty("大类型")
private String messageLargeType;
@ApiModelProperty("小类型")
private String messageSmallType;
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
@ -55,14 +61,33 @@ public class WgzAppGetMessageListRes implements Serializable {
private Long otherId; private Long otherId;
@ApiModelProperty("其它·补卡·补卡时间") @ApiModelProperty("其它·补卡·补卡时间")
private Long otherFillingTime; private LocalDateTime otherFillingTime;
@ApiModelProperty("其它·补卡·补卡理由") @ApiModelProperty("其它·补卡·补卡理由")
private Long otherReason; private String otherReason;
@ApiModelProperty("其它·补卡·申请人") @ApiModelProperty("其它·补卡·申请人")
private Long otherApplicant; private String otherApplicant;
@ApiModelProperty("其它·补卡·申请时间") @ApiModelProperty("其它·补卡·申请时间")
private Long otherApplicationDate; private LocalDateTime otherApplicationDate;
//其它·请假
@ApiModelProperty("其它·请假·请假ID")
private Long qjID;
@ApiModelProperty("其它·请假·请假起始时间")
private LocalDateTime qjStartingTime;
@ApiModelProperty("其它·请假·请假结算时间")
private LocalDateTime qjEndTime;
@ApiModelProperty("其它·请假·理由")
private String qjReason;
@ApiModelProperty("其它·请假·请假人")
private String qjName;
@ApiModelProperty("其它·请假·请假时间")
private LocalDateTime qjLeaveTime;
} }

View File

@ -10,6 +10,7 @@ import lombok.experimental.Accessors;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.Map;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@ -17,6 +18,6 @@ import java.util.List;
@ApiModel("消息类型统计返回参数") @ApiModel("消息类型统计返回参数")
public class WgzAppMessageTypeStatisticsRes implements Serializable { public class WgzAppMessageTypeStatisticsRes implements Serializable {
@ApiModelProperty("消息类型") @ApiModelProperty("消息类型")
private List<WgzAppMessageTypeStatisticsTwo> list; private Map<String,Integer> mp;
} }

View File

@ -27,6 +27,9 @@ public interface WgzMessageMapper extends BaseMapperPlus<WgzMessage> {
Page<WgzAppGetMessageListRes> userGetMessageList(@Param("page") Page<WgzAppGetMessageListReq> page,@Param("req") WgzAppGetMessageListReq req); Page<WgzAppGetMessageListRes> userGetMessageList(@Param("page") Page<WgzAppGetMessageListReq> page,@Param("req") WgzAppGetMessageListReq req);
// //根据招工id获取到招工的信息+附件 //根据招工id获取到招工的信息+附件
WgzAppRegistrationInformationRes findByRecruitIdData(@Param("recruitId") Long recruitId); WgzAppRegistrationInformationRes findByRecruitIdData(@Param("recruitId") Long recruitId);
//分页查询消息列表
Page<WgzAppGetMessageListRes> pagingQueryTheMessageList(@Param("page") Page<WgzAppGetMessageListReq> page,@Param("req") WgzAppGetMessageListReq req);
} }

View File

@ -134,4 +134,9 @@ public interface IWgzAttendanceService extends IServicePlus<WgzAttendance> {
*/ */
LocalDate findByNumGetDate(Long userId, Long recruitId,Integer num); LocalDate findByNumGetDate(Long userId, Long recruitId,Integer num);
/**
* 根据日期得到剩余还未结算的记录
*/
List<WgzAttendance> findByDateGetDateList(Long userId, Long recruitId,LocalDate date);
} }

View File

@ -177,8 +177,7 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
//5、查看当前人、当前工地、当天的打卡记录 //5、查看当前人、当前工地、当天的打卡记录
String formattedDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); String formattedDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
WgzAttendance we = publicFindByUserIdWait(appUserId, by.getId(), formattedDate); WgzAttendance we = publicFindByUserIdWait(appUserId, by.getId(), formattedDate);
String exceptionType = we.getExceptionType(); if (we !=null && we.getLeaveMarkId() != null && we.getLeaveMarkId()!= 0) {
if (we.getLeaveMarkId() != null && we.getLeaveMarkId()!= 0) {
throw new RuntimeException("您有已通过的请假申请,请假时间为:"+formattedDate); throw new RuntimeException("您有已通过的请假申请,请假时间为:"+formattedDate);
} }
//6、组装完整的打卡信息 //6、组装完整的打卡信息
@ -198,6 +197,7 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
wgzAttendance.setLateTime(now); wgzAttendance.setLateTime(now);
wgzAttendance.setExceptionType("1,"); wgzAttendance.setExceptionType("1,");
} }
return baseMapper.insert(wgzAttendance) > 0;
}else{ }else{
//7、获取上次打卡时间与这次打卡时间的间隔是否超过3分钟 //7、获取上次打卡时间与这次打卡时间的间隔是否超过3分钟
boolean flag = isMinutesDifferenceGreaterThanThree(we.getClockInTime(), now); boolean flag = isMinutesDifferenceGreaterThanThree(we.getClockInTime(), now);
@ -206,13 +206,15 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
} }
wgzAttendance.setClockOutTime(now); wgzAttendance.setClockOutTime(now);
LocalTime endWorkTime = appById.getEndWorkTime(); //下班 LocalTime endWorkTime = appById.getEndWorkTime(); //下班
String exceptionType = we.getExceptionType();
if (!localTime.isAfter(endWorkTime)) { if (!localTime.isAfter(endWorkTime)) {
wgzAttendance.setId(we.getId());
wgzAttendance.setEarlyLeave(1); //早退 wgzAttendance.setEarlyLeave(1); //早退
wgzAttendance.setEarlyLeaveTime(now); wgzAttendance.setEarlyLeaveTime(now);
wgzAttendance.setExceptionType(exceptionType+"2,"); wgzAttendance.setExceptionType(exceptionType+"2,");
} }
return baseMapper.updateById(wgzAttendance) > 0;
} }
return baseMapper.insert(wgzAttendance) > 0;
} }
/** /**
@ -691,4 +693,19 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
} }
return null; return null;
} }
/**
* 根据日期得到剩余还未结算的记录
*/
@Override
public List<WgzAttendance> findByDateGetDateList(Long userId, Long recruitId, LocalDate date) {
//1、获取所有考勤信息前提条件是该用户的打卡时间要大于date
LambdaQueryWrapper<WgzAttendance> wra = new LambdaQueryWrapper<>();
wra.eq(WgzAttendance::getRecruitId, recruitId);
wra.eq(WgzAttendance::getUserId, userId);
wra.gt(WgzAttendance::getDate, date);
wra.orderByAsc(WgzAttendance::getDate);
List<WgzAttendance> wgzAttendances = baseMapper.selectList(wra);
return wgzAttendances;
}
} }

View File

@ -21,6 +21,12 @@ import com.ruoyi.wgz.bo.res.WgzAppGetMessageListRes;
import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes; import com.ruoyi.wgz.bo.res.WgzAppMessageTypeStatisticsRes;
import com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes; import com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes;
import com.ruoyi.wgz.bo.rests.WgzAppMessageTypeStatisticsTwo; import com.ruoyi.wgz.bo.rests.WgzAppMessageTypeStatisticsTwo;
import com.ruoyi.wgz.domain.WgzLeave;
import com.ruoyi.wgz.domain.WgzReissueacard;
import com.ruoyi.wgz.domain.WgzUser;
import com.ruoyi.wgz.service.IWgzLeaveService;
import com.ruoyi.wgz.service.IWgzReissueacardService;
import com.ruoyi.wgz.service.IWgzUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -32,10 +38,7 @@ import com.ruoyi.wgz.domain.WgzMessage;
import com.ruoyi.wgz.mapper.WgzMessageMapper; import com.ruoyi.wgz.mapper.WgzMessageMapper;
import com.ruoyi.wgz.service.IWgzMessageService; import com.ruoyi.wgz.service.IWgzMessageService;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/** /**
* 消息Service业务层处理 * 消息Service业务层处理
@ -52,6 +55,15 @@ public class WgzMessageServiceImpl extends ServicePlusImpl<WgzMessageMapper, Wgz
@Autowired @Autowired
private IAnnexService annexService; private IAnnexService annexService;
@Autowired
private IWgzReissueacardService iWgzReissueacardService;
@Autowired
private IWgzLeaveService iWgzLeaveService;
@Autowired
private IWgzUserService wgzUserService;
@Override @Override
public WgzMessage queryById(Long id){ public WgzMessage queryById(Long id){
return getById(id); return getById(id);
@ -131,33 +143,62 @@ public class WgzMessageServiceImpl extends ServicePlusImpl<WgzMessageMapper, Wgz
@Override @Override
public WgzAppMessageTypeStatisticsRes userMessageTypeStatistics(Long id) { public WgzAppMessageTypeStatisticsRes userMessageTypeStatistics(Long id) {
WgzAppMessageTypeStatisticsRes res = new WgzAppMessageTypeStatisticsRes(); WgzAppMessageTypeStatisticsRes res = new WgzAppMessageTypeStatisticsRes();
List<WgzAppMessageTypeStatisticsTwo> list = new ArrayList<>(); Map<String, Integer> mp = new HashMap<>();
// List<WgzAppMessageTypeStatisticsTwo> list = new ArrayList<>();
//1、获取字典类型 //1、获取字典类型
List<SysDictData> data = dictTypeService.selectDictDataByType("message_large_type"); List<SysDictData> data = dictTypeService.selectDictDataByType("message_large_type");
for (SysDictData datum : data) { for (SysDictData datum : data) {
WgzAppMessageTypeStatisticsTwo two = new WgzAppMessageTypeStatisticsTwo();
//2、统计数据 //2、统计数据
LambdaQueryWrapper<WgzMessage> wp = new LambdaQueryWrapper<WgzMessage>(). LambdaQueryWrapper<WgzMessage> wp = new LambdaQueryWrapper<WgzMessage>().
eq(WgzMessage::getRecipientId, id). eq(WgzMessage::getRecipientId, id).
eq(WgzMessage::getRecipientType, "1"). eq(WgzMessage::getRecipientType, "1").
eq(WgzMessage::getReadStatus, "0"). eq(WgzMessage::getReadStatus, "0").
eq(WgzMessage::getMessageLargeType, datum.getDictValue()); eq(WgzMessage::getMessageLargeType, datum.getDictValue());
two.setType(datum.getDictValue()); mp.put(datum.getDictValue(),baseMapper.selectCount(wp));
two.setNum(baseMapper.delete(wp));
list.add(two);
} }
res.setList(list); return res.setMp(mp);
return res;
} }
@Override @Override
public TableDataInfo<WgzAppGetMessageListRes> userGetMessageList(WgzAppGetMessageListReq req) { public TableDataInfo<WgzAppGetMessageListRes> userGetMessageList(WgzAppGetMessageListReq req) {
Long appUserId = SecurityUtils.getAppUserId(); Long appUserId = SecurityUtils.getAppUserId();
WgzUser wgz = wgzUserService.findByUserId(appUserId);
req.setRecipientId(appUserId); req.setRecipientId(appUserId);
Page<WgzAppGetMessageListReq> queryDTOPage = new Page<>(); Page<WgzAppGetMessageListReq> queryDTOPage = new Page<>();
queryDTOPage.setCurrent(req.getPageNum()); queryDTOPage.setCurrent(req.getPageNum());
queryDTOPage.setSize(req.getPageSize()); queryDTOPage.setSize(req.getPageSize());
return PageUtils.buildDataInfo(baseMapper.userGetMessageList(queryDTOPage,req)); //1、分页查询出所有的小类型然后循环查询小类型对应标题数据
if(req.getLargeType() !=null && req.getLargeType().equals("3") && req.getSmallType()==null){
Page<WgzAppGetMessageListRes> pe = baseMapper.pagingQueryTheMessageList(queryDTOPage, req);
//2、循环小类型,然后去查询对应不同类的查询标题主要针对0补卡、3请假
pe.getRecords().stream().forEach(res -> {
//3、根据小类型去查询标题
if(res.getMessageSmallType().equals("0")){
WgzReissueacard byId = iWgzReissueacardService.getById(res.getTableId());
res.setOtherId(byId.getId()).
setOtherFillingTime(byId.getNowTime()).
setOtherReason(byId.getReason()).
setOtherApplicant(wgz.getUsername()).
setOtherApplicationDate(byId.getCreateTime());
}
if(res.getMessageSmallType().equals("3")){
WgzLeave byId = iWgzLeaveService.getById(res.getTableId());
res.setQjID(byId.getId()).
setQjStartingTime(byId.getStartTime()).
setQjEndTime(byId.getEndTime()).
setQjReason(byId.getReason()).
setQjName(wgz.getUsername()).
setQjLeaveTime(byId.getCreateTime());
}
});
return PageUtils.buildDataInfo(pe);
}
//2、走正常的全部+大类型+具体的小类型
else{
return PageUtils.buildDataInfo(baseMapper.userGetMessageList(queryDTOPage,req));
}
} }

View File

@ -29,10 +29,7 @@ import com.ruoyi.wgz.bo.WgzPayCalculationQueryBo;
import com.ruoyi.wgz.bo.req.WgzAppApplyForPayrollSettlementListReq; import com.ruoyi.wgz.bo.req.WgzAppApplyForPayrollSettlementListReq;
import com.ruoyi.wgz.bo.req.WgzApplyForPayrollSettlementAddReq; import com.ruoyi.wgz.bo.req.WgzApplyForPayrollSettlementAddReq;
import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes; import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
import com.ruoyi.wgz.domain.WgzMessage; import com.ruoyi.wgz.domain.*;
import com.ruoyi.wgz.domain.WgzPayCalculation;
import com.ruoyi.wgz.domain.WgzPayCalculationFiles;
import com.ruoyi.wgz.domain.WgzUser;
import com.ruoyi.wgz.mapper.WgzPayCalculationMapper; import com.ruoyi.wgz.mapper.WgzPayCalculationMapper;
import com.ruoyi.wgz.service.*; import com.ruoyi.wgz.service.*;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -175,26 +172,27 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
SysUser user = SecurityUtils.getLoginUser().getUser(); SysUser user = SecurityUtils.getLoginUser().getUser();
BgtProjectRecruitApply recruitApply = iBgtProjectRecruitApplyService.selectByUserIdProjectRecruitApplyId(user.getUserId()); BgtProjectRecruitApply recruitApply = iBgtProjectRecruitApplyService.selectByUserIdProjectRecruitApplyId(user.getUserId());
BgtProjectRecruit recruit = iBgtProjectRecruitService.getAppById(recruitApply.getId()); BgtProjectRecruit recruit = iBgtProjectRecruitService.getAppById(recruitApply.getId());
// //2、结算数据之前需要先获取以往结算的数据然后得到剩余结算天数再从剩余天数重新进行数据结算 //2、结算数据之前需要先获取以往结算的数据(如果没有就说明第一次结算),然后得到剩余结算天数,再从剩余天数重新进行数据结算
// //2.1、获取以往结算的数据 Integer num = 0;
// WgzPayCalculation wgzts = baseMapper.selectOne(Wrappers.<WgzPayCalculation>lambdaQuery(). LocalDate byNumGetDate = null;
// eq(WgzPayCalculation::getUserId, user.getUserId()). WgzPayCalculation wgzts = baseMapper.selectOne(Wrappers.<WgzPayCalculation>lambdaQuery().
// eq(WgzPayCalculation::getRecruitId, recruitApply.getId()). eq(WgzPayCalculation::getUserId, user.getUserId()).
// orderByDesc(WgzPayCalculation::getCreateTime). eq(WgzPayCalculation::getRecruitId, recruitApply.getId()).
// last("LIMIT 1") orderByDesc(WgzPayCalculation::getCreateTime).
// ); last("LIMIT 1")
// if (wgzts != null) { );
// LocalDate cutOffTime = wgzts.getCutOffTime(); if (wgzts != null) {//得到最后一次的结算截止时间和剩余未结算天数
// Integer num = iWgzAttendanceService.attendanceDetail(user.getUserId(), recruitApply.getRecruitId(), null); byNumGetDate = wgzts.getCutOffTime();
// } num = iWgzAttendanceService.findByDateGetDateList(user.getUserId(), recruitApply.getRecruitId(), byNumGetDate).size();
//2、获取当前人一共考勤打卡了多少天然后计算当前结算天数得到具体是考勤打卡对应的哪一天 }else{//得到即将结算截止的日期和剩余未结算天数
Integer num = iWgzAttendanceService.attendanceDetail(user.getUserId(), recruitApply.getRecruitId(), null); byNumGetDate = iWgzAttendanceService.findByNumGetDate(user.getUserId(), recruitApply.getRecruitId(), req.getNum());
if (num < req.getNum()) { num = iWgzAttendanceService.attendanceDetail(user.getUserId(), recruitApply.getRecruitId(), null);
throw new RuntimeException("你的剩余考勤天数不满足你当前想要结算的天数!");
} }
LocalDate byNumGetDate = iWgzAttendanceService.findByNumGetDate(user.getUserId(), recruitApply.getRecruitId(), req.getNum()); if (num < req.getNum()) { //判断剩余天数是否满足当前结算天数
//2、组装数据 throw new RuntimeException("您剩余可结算天数为:"+num+"天,您当前想要结算的天数为:"+req.getNum()+"天,剩余天数不足!");
}
//4、组装数据
WgzPayCalculation wgzPayCalculation = new WgzPayCalculation(); WgzPayCalculation wgzPayCalculation = new WgzPayCalculation();
BeanUtils.copyProperties(req,wgzPayCalculation); BeanUtils.copyProperties(req,wgzPayCalculation);
wgzPayCalculation. wgzPayCalculation.
@ -202,9 +200,9 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
setUserName(user.getUserName()). setUserName(user.getUserName()).
setAuditorUserId(recruit.getUserId()). setAuditorUserId(recruit.getUserId()).
setCutOffTime(byNumGetDate); setCutOffTime(byNumGetDate);
//3、获取附件信息并插入 //5、获取附件信息并插入
iWgzPayCalculationFilesService.saveBatch(req.getPayCalculation()); iWgzPayCalculationFilesService.saveBatch(req.getPayCalculation());
//4、插入工资结算信息 //6、插入工资结算信息
boolean save = save(wgzPayCalculation); boolean save = save(wgzPayCalculation);
if (save) { if (save) {
WgzUser byId = wgzUserService.findByUserId(user.getUserId()); WgzUser byId = wgzUserService.findByUserId(user.getUserId());

View File

@ -62,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
c.task_name, c.task_name,
c.task_address, c.task_address,
c.task_img, c.task_img,
(SELECT count(1) FROM bgt_project_recruit_apply WHERE recruit_id = a.id) as numberOfRegistered (SELECT count(1) FROM bgt_project_recruit_apply WHERE recruit_id = b.id) as numberOfRegistered
FROM FROM
bgt_project_recruit_apply as a bgt_project_recruit_apply as a
LEFT JOIN bgt_project_recruit as b on(a.recruit_id = b.id and b.del_flag = 0 ) LEFT JOIN bgt_project_recruit as b on(a.recruit_id = b.id and b.del_flag = 0 )
@ -84,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
bgt_project_recruit_apply as a bgt_project_recruit_apply as a
LEFT JOIN wgz_user as b ON (a.user_id = b.user_id AND b.del_flag = 0) LEFT JOIN wgz_user as b ON (a.user_id = b.user_id AND b.del_flag = 0)
WHERE WHERE
a.id = #{recruitId} AND a.del_flag = 0 a.recruit_id = #{recruitId} AND a.del_flag = 0
</select> </select>
<select id="userJobListing" resultType="com.ruoyi.wgz.bo.res.WgzAppJobListingRes"> <select id="userJobListing" resultType="com.ruoyi.wgz.bo.res.WgzAppJobListingRes">
@ -96,8 +96,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
(SELECT count(1) FROM bgt_project_recruit_apply WHERE recruit_id = b.id) as numberOfRegistered (SELECT count(1) FROM bgt_project_recruit_apply WHERE recruit_id = b.id) as numberOfRegistered
FROM FROM
bgt_project_recruit as b bgt_project_recruit as b
LEFT JOIN fbs_project_task as c ON (c.id = b.task_id AND c.del_flag = 0) LEFT JOIN fbs_project_task as c ON (c.id = b.task_id)
WHERE WHERE
b.id not in (SELECT recruit_id FROM bgt_project_recruit_apply WHERE user_id = #{req.userId}) and
b.del_flag = 0 b.del_flag = 0
</select> </select>

View File

@ -34,65 +34,98 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.table_id as tableId, a.table_id as tableId,
a.table_name as tableName, a.table_name as tableName,
a.read_status as readStatus, a.read_status as readStatus,
a.create_time as createTime a.create_time as createTime,
<if test="req.largeType == '1'"> a.message_large_type as messageLargeType,
a.message_small_type as messageSmallType
<if test="req.largeType == 0">
,c.recruit_name as recruitName ,c.recruit_name as recruitName
,c.id as recruitId ,c.id as recruitId
</if> </if>
<if test="req.largeType == '2'"> <if test="req.largeType == 1">
,d.id as jsId ,d.id as jsId
,d.recruit_name as jsName ,d.recruit_name as jsName
</if> </if>
<if test="req.largeType == '3' and req.smallType == '0'"> <if test="req.largeType == 2 and req.smallType == 0">
,e.id as otherId ,e.id as otherId
,e.now_time as otherFillingTime ,e.now_time as otherFillingTime
,e.reason as otherReason ,e.reason as otherReason
,f.username as otherApplicant ,f.username as otherApplicant
,e.create_time as otherApplicationDate ,e.create_time as otherApplicationDate
</if> </if>
<if test="req.largeType == 2 and req.smallType == 3">
,g.id as qjID
,g.start_time as qjStartingTime
,g.end_time as qjEndTime
,g.reason as qjReason
,h.username as qjName
,g.create_time as qjLeaveTime
</if>
FROM FROM
wgz_message as a wgz_message as a
<if test="req.largeType == '1'"> <if test="req.largeType == 0">
LEFT JOIN bgt_project_recruit_apply as b ON b.id = a.table_id LEFT JOIN bgt_project_recruit_apply as b ON b.id = a.table_id
LEFT JOIN bgt_project_recruit as c ON c.id = b.recruit_id LEFT JOIN bgt_project_recruit as c ON c.id = b.recruit_id
</if> </if>
<if test="req.largeType == '2'"> <if test="req.largeType == 1">
LEFT JOIN wgz_pay_calculation as d ON d.id = a.table_id LEFT JOIN wgz_pay_calculation as d ON d.id = a.table_id
</if> </if>
<if test="req.largeType == '3' and req.smallType == '0'"> <if test="req.largeType == 2 and req.smallType == 0">
LEFT JOIN wgz_reissueacard as e ON e.id = a.table_id LEFT JOIN wgz_reissueacard as e ON e.id = a.table_id
LEFT JOIN wgz_user as f ON f.id = e.user_id LEFT JOIN wgz_user as f ON f.id = e.user_id
</if> </if>
<if test="req.largeType == '3' and req.smallType == '1'"> <!-- <if test="req.largeType == 2 and req.smallType == '1'">-->
LEFT JOIN wgz_reissueacard as e ON e.id = a.table_id <!-- LEFT JOIN wgz_reissueacard as e ON e.id = a.table_id-->
LEFT JOIN wgz_user as f ON f.id = e.user_id <!-- LEFT JOIN wgz_user as f ON f.id = e.user_id-->
</if> <!-- </if>-->
<if test="req.largeType == '3'"> <!-- <if test="req.largeType == 2 and req.smallType == '2'">-->
LEFT JOIN wgz_reissueacard as e ON e.id = a.table_id <!-- LEFT JOIN wgz_reissueacard as e ON e.id = a.table_id-->
LEFT JOIN wgz_user as f ON f.id = e.user_id <!-- LEFT JOIN wgz_user as f ON f.id = e.user_id-->
<!-- </if>-->
<if test="req.largeType == 2 and req.smallType == 3">
LEFT JOIN wgz_leave as g ON g.id = a.table_id
LEFT JOIN wgz_user as h ON h.id = g.user_id
</if> </if>
<!-- <if test="req.largeType == 2">-->
<!-- LEFT JOIN wgz_reissueacard as e ON e.id = a.table_id-->
<!-- LEFT JOIN wgz_user as f ON f.id = e.user_id-->
<!-- </if>-->
<where> <where>
a.recipient_type = "1" AND a.recipient_type = "1" AND
a.recipient_id = #{req.recipientId} AND a.recipient_id = #{req.recipientId} AND
a.del_flag = "0" a.del_flag = "0"
<if test="req.largeType == '1'"> <if test="req.largeType !=null and req.largeType!=''">
AND b.del_flag = "0" AND a.message_large_type = #{req.largeType}
AND c.del_flag = "0"
</if> </if>
<if test="req.largeType == '2'"> <if test="req.smallType !=null and req.smallType!=''">
AND d.del_flag = "0" AND a.message_small_type = #{req.smallType}
</if>
<if test="req.largeType == '3' and req.smallType == '0'">
AND e.del_flag = "0"
AND f.del_flag = "0"
</if>
<if test="req.largeType == '3' and req.smallType == '1'">
AND a.sender_type = "0"
</if> </if>
</where> </where>
</select> </select>
<select id="pagingQueryTheMessageList" resultType="com.ruoyi.wgz.bo.res.WgzAppGetMessageListRes">
SELECT
a.id,
a.headline,
a.subheading,
a.table_id as tableId,
a.table_name as tableName,
a.read_status as readStatus,
a.create_time as createTime,
a.message_large_type as messageLargeType,
a.message_small_type as messageSmallType
FROM
wgz_message as a
<where>
a.recipient_type = "1" AND
a.recipient_id = #{req.recipientId} AND
a.message_large_type = '3' AND
a.message_small_type is null AND
a.del_flag = "0"
</where>
</select>
<select id="findByRecruitIdData" resultType="com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes"> <select id="findByRecruitIdData" resultType="com.ruoyi.wgz.bo.res.WgzAppRegistrationInformationRes">
SELECT SELECT
a.id as recruitApplyId, a.id as recruitApplyId,