This commit is contained in:
zt
2025-03-14 18:22:17 +08:00
parent 6e4036b2e9
commit c93ad97c38
24 changed files with 417 additions and 48 deletions

View File

@ -0,0 +1,73 @@
package com.ruoyi.bgt.domain.dto;
import com.ruoyi.wgz.domain.WgzPayCalculationFiles;
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.util.List;
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("包工头为务工者申请工资结算(新增)请求对象")
public class BgtApplyForWgzPayAddDTO implements Serializable {
@ApiModelProperty("任务ID")
private Long taskId;
@ApiModelProperty("招工ID")
private Long recruitId;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("任务地址")
private String taskAddress;
@ApiModelProperty("招工名称")
private String recruitName;
@ApiModelProperty("务工者ID")
private Long userId;
@ApiModelProperty("申请人名称")
private String userName;
@ApiModelProperty("进场时间")
private LocalDate entryTime;
@ApiModelProperty("退场时间(注意:完成项目才填写退场时间)")
private LocalDate leaveTime;
@ApiModelProperty("工资金额")
private BigDecimal recruitAmount;
@ApiModelProperty("出勤天数")
private Integer num;
@ApiModelProperty("务工状态")
private String workingState;
@ApiModelProperty("联系电话")
private String phone;
@ApiModelProperty("银行")
private String bank;
@ApiModelProperty("银行卡号")
private String cardNo;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("附件实体数据")
private List<WgzPayCalculationFiles> payCalculation;
}

View File

@ -6,8 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDate;
/**
@ -31,6 +31,7 @@ public class BgtMessageDetailDTO {
@ApiModelProperty("日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate date;
@ApiModelProperty("大类型字典bgt_message_large_type")

View File

@ -0,0 +1,36 @@
package com.ruoyi.bgt.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 工资结算分页查询对象 wgz_pay_calculation
*
* @author ruoyi
* @date 2025-02-21
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("包工头工资结算审核记录查询对象")
public class BgtPayCalculationRecordDTO {
/** 分页大小 */
@ApiModelProperty("分页大小")
private Integer pageSize;
/** 当前页数 */
@ApiModelProperty("当前页数")
private Integer pageNum;
@ApiModelProperty("招工ID")
private Long recruitId;
@ApiModelProperty("申请人ID")
private Long userId;
}

View File

@ -0,0 +1,73 @@
package com.ruoyi.bgt.domain.vo;
import com.ruoyi.wgz.domain.WgzPayCalculationFiles;
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.util.List;
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("包工头为务工者申请工资结算基础信息对象")
public class BgtApplyForWgzPayAddInfoVO implements Serializable {
@ApiModelProperty("任务ID")
private Long taskId;
@ApiModelProperty("招工ID")
private Long recruitId;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("任务地址")
private String taskAddress;
@ApiModelProperty("招工名称")
private String recruitName;
@ApiModelProperty("务工者ID")
private Long userId;
@ApiModelProperty("申请人名称")
private String userName;
@ApiModelProperty("进场时间")
private LocalDate entryTime;
@ApiModelProperty("退场时间(注意:完成项目才填写退场时间)")
private LocalDate leaveTime;
@ApiModelProperty("工资金额")
private BigDecimal recruitAmount;
@ApiModelProperty("出勤天数")
private Integer num;
@ApiModelProperty("务工状态")
private String workingState;
@ApiModelProperty("联系电话")
private String phone;
@ApiModelProperty("银行")
private String bank;
@ApiModelProperty("银行卡号")
private String cardNo;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("附件实体数据")
private List<WgzPayCalculationFiles> payCalculation;
}

View File

@ -71,4 +71,6 @@ public class BgtDailyClockDetailVO {
@ApiModelProperty("已读|审核时间")
private LocalDateTime auditorTime;
@ApiModelProperty("日报状态0正常 1补卡")
private String status;
}

View File

@ -33,5 +33,11 @@ public class BgtDailyClockListVO {
@ApiModelProperty("姓名")
private String username;
@ApiModelProperty("日报状态0正常 1补卡")
private String status;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -27,6 +27,10 @@ public class BgtMessageDetailVO implements Serializable {
@ApiModelProperty("主键自增ID")
private Long id;
@ApiModelProperty("发送人")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long senderId;
@ApiModelProperty("表ID")
private Long tableId;

View File

@ -1,4 +1,4 @@
package com.ruoyi.bgt.domain.dto;
package com.ruoyi.bgt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
@ -43,4 +43,18 @@ public class BgtPayCalculationDetailBaseVO {
@ApiModelProperty("剩余工资")
private BigDecimal residueAmount;
@ApiModelProperty("身份证号")
private String identityCard;
//结算工资需要的参数
@ApiModelProperty("招工Id")
private Long recruitId;
@ApiModelProperty("任务Id")
private Long taskId;
@ApiModelProperty("务工者Id")
private Long userId;
}

View File

@ -1,4 +1,4 @@
package com.ruoyi.bgt.domain.dto;
package com.ruoyi.bgt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;

View File

@ -146,4 +146,9 @@ public interface IBgtProjectRecruitApplyService extends IServicePlus<BgtProjectR
* 根据任务和务工者Id获该务工者的报名信息
*/
BgtProjectRecruitApply getOne(Long taskId,Long userId);
/**
* 根据招工和务工者Id获该务工者的最近一条申请信息(只查进场和立场)
*/
BgtProjectRecruitApply getOneByUserIdAndRecruitId(Long userId, Long recruitId);
}

View File

@ -671,8 +671,21 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
@Override
public BgtProjectRecruitApply getOne(Long taskId, Long userId) {
List<BgtProjectRecruitApply> list = baseMapper.selectList(Wrappers.<BgtProjectRecruitApply>lambdaQuery().eq(BgtProjectRecruitApply::getTaskId, taskId)
.eq(BgtProjectRecruitApply::getUserId, userId));
List<BgtProjectRecruitApply> list = baseMapper.selectList(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
.eq(BgtProjectRecruitApply::getTaskId, taskId)
.eq(BgtProjectRecruitApply::getUserId, userId)
.orderByDesc(BgtProjectRecruitApply::getCreateTime));
return CollectionUtil.isNotEmpty(list)?list.get(0):new BgtProjectRecruitApply();
}
@Override
public BgtProjectRecruitApply getOneByUserIdAndRecruitId(Long userId, Long recruitId) {
List<BgtProjectRecruitApply> list = baseMapper.selectList(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
.eq(BgtProjectRecruitApply::getRemark, recruitId)
.eq(BgtProjectRecruitApply::getUserId, userId)
.in(BgtProjectRecruitApply::getStatus, RecruitApplyStatus.getWorkStatus())
.orderByDesc(BgtProjectRecruitApply::getCreateTime));
return list.get(0);
}
}

View File

@ -185,7 +185,8 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
@Override
public List<BgtProjectRecruit> appQueryList() {
return list(Wrappers.<BgtProjectRecruit>lambdaQuery()
.eq(BgtProjectRecruit::getUserId, SecurityUtils.getAppUserId()));
.eq(BgtProjectRecruit::getUserId, SecurityUtils.getAppUserId())
.orderByDesc(BgtProjectRecruit::getCreateTime));
}
@Override

View File

@ -64,7 +64,7 @@ public class AppTaskVO {
private LocalDateTime createTime;
@ApiModelProperty("申请数量")
private Integer applyNum;
private Integer applyNum=0;
@ApiModelProperty("判断标志")
private Boolean myTask;

View File

@ -129,6 +129,9 @@ public class WgzPayCalculation implements Serializable {
@ApiModelProperty("同意|拒绝时间")
private LocalDateTime auditorTime;
@ApiModelProperty("申请人类型")
private String operatorType;
/** 删除标志0代表存在 2代表删除 */
@Excel(name = "删除标志" , readConverterExp = "0=代表存在,2=代表删除")
@ApiModelProperty("删除标志0代表存在 2代表删除")

View File

@ -1,9 +1,12 @@
package com.ruoyi.wgz.service;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailBaseVO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
import com.ruoyi.bgt.domain.dto.BgtApplyForWgzPayAddDTO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationRecordDTO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
import com.ruoyi.bgt.domain.vo.BgtApplyForWgzPayAddInfoVO;
import com.ruoyi.bgt.domain.vo.BgtPayCalculationDetailBaseVO;
import com.ruoyi.bgt.domain.vo.BgtPayCalculationDetailListVO;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wgz.bo.WgzPayCalculationQueryBo;
@ -113,6 +116,9 @@ public interface IWgzPayCalculationService extends IServicePlus<WgzPayCalculatio
/**
* 总体考勤情况-工资结算-结算记录
*/
List<BgtPayCalculationDetailListVO> record(Long userId, Long recruitId);
TableDataInfo<BgtPayCalculationDetailListVO> record(BgtPayCalculationRecordDTO dto);
Boolean bgtAdd(BgtApplyForWgzPayAddDTO dto);
BgtApplyForWgzPayAddInfoVO payInfo(Long userId, Long recruitId);
}

View File

@ -327,9 +327,9 @@ public class WgzDailyClockServiceImpl extends ServicePlusImpl<WgzDailyClockMappe
public BgtDailyClockDetailVO appQueryById(Long id) {
WgzDailyClock dailyClock = getById(id);
BgtDailyClockDetailVO detailVO = BeanUtil.copyProperties(dailyClock, BgtDailyClockDetailVO.class);
BgtUser bgtUser = userService.getById(dailyClock.getUserId());
detailVO.setUsername(bgtUser.getUsername());
detailVO.setAvatarName(bgtUser.getAvatarName());
WgzUser wgzUser = wgzUserService.findByUserId(dailyClock.getUserId());
detailVO.setUsername(wgzUser.getUsername());
detailVO.setAvatarName(wgzUser.getAvatarName());
BgtProjectRecruit recruit = recruitService.getById(dailyClock.getRecruitId());
detailVO.setRecruitName(recruit.getRecruitName());
return detailVO;

View File

@ -15,6 +15,7 @@ import com.ruoyi.bgt.service.IBgtProjectRecruitService;
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.wgz.bo.WgzLeaveQueryBo;
@ -213,6 +214,9 @@ public class WgzLeaveServiceImpl extends ServicePlusImpl<WgzLeaveMapper, WgzLeav
@Transactional(rollbackFor = Exception.class)
public Boolean bgtAudit(BgtLeaveUpdateDTO dto) {
WgzLeave wgzLeave = getById(dto.getId());
if(!AuditStatus.UNREAD.getCode().equals(wgzLeave.getAuditorType())){
throw new BaseException("该条请假申请状态已改变,请刷新页面");
}
BeanUtil.copyProperties(dto, wgzLeave);
wgzLeave.setAuditorTime(LocalDateTime.now());
BgtProjectRecruit recruit = iBgtProjectRecruitService.getById(wgzLeave.getRecruitId());

View File

@ -1,22 +1,24 @@
package com.ruoyi.wgz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.ruoyi.bgt.domain.BgtMessage;
import com.ruoyi.bgt.domain.BgtProjectRecruit;
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailBaseVO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
import com.ruoyi.bgt.domain.dto.BgtApplyForWgzPayAddDTO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationRecordDTO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
import com.ruoyi.bgt.service.IBgtMessageService;
import com.ruoyi.bgt.domain.vo.BgtApplyForWgzPayAddInfoVO;
import com.ruoyi.bgt.domain.vo.BgtPayCalculationDetailBaseVO;
import com.ruoyi.bgt.domain.vo.BgtPayCalculationDetailListVO;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
import com.ruoyi.common.constants.WgzAndBgtMessageConstant;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
@ -32,15 +34,16 @@ import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
import com.ruoyi.wgz.domain.*;
import com.ruoyi.wgz.mapper.WgzPayCalculationMapper;
import com.ruoyi.wgz.service.*;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import static com.ruoyi.common.constants.BgtMessageConstant.*;
import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.*;
@ -75,12 +78,6 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
@Autowired
private IWgzMessageService wgzMessageService;
@Autowired
private IWgzMessageService iWgzMessageService;
@Autowired
private IBgtMessageService iBgtMessageService;
@Autowired
private IWgzAttendanceService iWgzAttendanceService;
@ -341,16 +338,28 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean appUpdate(BgtPayCalculationUpdateDTO dto) {
WgzPayCalculation payCalculation = getById(dto.getId());
BeanUtil.copyProperties(dto, payCalculation);
boolean isPass = AuditStatus.PASS.getCode().equals(dto.getAuditorType());
payCalculation.setAuditorTime(LocalDateTime.now());
if(!isPass){
List<WgzPayCalculationMiddle> list = iWgzPayCalculationMiddleService.list(Wrappers.<WgzPayCalculationMiddle>lambdaQuery()
.eq(WgzPayCalculationMiddle::getCalculationId, dto.getId()));
if(CollectionUtils.isNotEmpty(list)){
List<Long> collect = list.stream().map(WgzPayCalculationMiddle::getAttendanceId).collect(Collectors.toList());
attendanceService.lambdaUpdate().in(WgzAttendance::getId,collect)
.set(WgzAttendance::getSettlement, 0).update();
iWgzPayCalculationMiddleService.removeByIds(list.stream().map(WgzPayCalculationMiddle::getId).collect(Collectors.toList()));
}
}
//发消息
HashMap<String, String> mp = new HashMap<>();
mp.put("projectName",iBgtProjectRecruitService.getById(payCalculation.getRecruitId()).getRecruitName());
mp.put("auditor",SecurityUtils.getUsername());
Map<String, String> map = bgtMessage(mp, BGT_TYPE_PAY, AuditStatus.PASS.getCode().equals(dto.getAuditorType()));
Map<String, String> map = bgtMessage(mp, BGT_TYPE_PAY, isPass);
WgzMessage wgzMessage = new WgzMessage()
.setSenderType(USERTYPE_BGT)
.setSenderId(SecurityUtils.getAppUserId())
@ -380,6 +389,7 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
vo.setScore(wgzUser.getScore());
vo.setUsername(wgzUser.getUsername());
vo.setAvatarName(wgzUser.getAvatarName());
vo.setIdentityCard(wgzUser.getIdentityCard());
BgtProjectRecruit recruit = iBgtProjectRecruitService.getById(recruitId);
vo.setRecruitName(recruit.getRecruitName());
@ -387,6 +397,10 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
FbsProjectTask task = taskService.getById(recruit.getTaskId());
vo.setTaskName(task.getTaskName());
vo.setUserId(userId);
vo.setRecruitId(recruitId);
vo.setTaskId(recruit.getTaskId());
BgtProjectRecruitApply apply = iBgtProjectRecruitApplyService.getOne(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
.eq(BgtProjectRecruitApply::getRecruitId, recruitId).eq(BgtProjectRecruitApply::getUserId, userId)
.last("limit 1"));
@ -410,10 +424,99 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
}
@Override
public List<BgtPayCalculationDetailListVO> record(Long userId, Long recruitId) {
List<WgzPayCalculation> wgzPayCalculations = baseMapper.selectList(Wrappers.<WgzPayCalculation>lambdaQuery()
public TableDataInfo<BgtPayCalculationDetailListVO> record(BgtPayCalculationRecordDTO dto) {
LambdaQueryWrapper<WgzPayCalculation> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WgzPayCalculation::getUserId, dto.getUserId())
.eq(WgzPayCalculation::getRecruitId, dto.getRecruitId())
.eq(WgzPayCalculation::getAuditorUserId, SecurityUtils.getAppUserId())
.in(WgzPayCalculation::getAuditorType,AuditStatus.getAudit())
.orderByDesc(WgzPayCalculation::getCreateTime);
Page<WgzPayCalculation> result = page(PageUtils.buildPage(), wrapper);
Page<BgtPayCalculationDetailListVO> res = new Page<>();
res.setRecords(BeanUtil.copyToList(result.getRecords(), BgtPayCalculationDetailListVO.class));
res.setTotal(result.getTotal());
return PageUtils.buildDataInfo(res);
}
@Override
@Transactional
public Boolean bgtAdd(BgtApplyForWgzPayAddDTO dto) {
//添加申请
WgzPayCalculation payCalculation = BeanUtil.copyProperties(dto, WgzPayCalculation.class);
payCalculation.setAuditorType(AuditStatus.PASS.getCode());
payCalculation.setAuditorTime(LocalDateTime.now());
payCalculation.setAuditorUserId(SecurityUtils.getAppUserId());
payCalculation.setAuditorUserName(SecurityUtils.getUsername());
payCalculation.setOperatorType(Constants.BGT);
boolean save = save(payCalculation);
//修改标记,添加中间表
List<WgzPayCalculationMiddle> middleList = new ArrayList<>();
List<WgzAttendance> list = iWgzAttendanceService.list(Wrappers.<WgzAttendance>lambdaQuery()
.eq(WgzAttendance::getRecruitId, dto.getRecruitId())
.eq(WgzAttendance::getSettlement, 0));
for(WgzAttendance data : list) {
data.setSettlement(1);
WgzPayCalculationMiddle wgzPayCalculationMiddle = new WgzPayCalculationMiddle();
wgzPayCalculationMiddle.setCalculationId(payCalculation.getId());
wgzPayCalculationMiddle.setAttendanceId(data.getId());
middleList.add(wgzPayCalculationMiddle);
}
iWgzAttendanceService.updateBatchById(list);
iWgzPayCalculationMiddleService.saveBatch(middleList);
//修改其余未审批申请的状态
List<WgzPayCalculation> payList = list(Wrappers.<WgzPayCalculation>lambdaQuery().eq(WgzPayCalculation::getAuditorType, AuditStatus.UNREAD.getCode())
.eq(WgzPayCalculation::getUserId, dto.getUserId()));
if(CollectionUtil.isNotEmpty(payList)) {
payList.forEach(pay -> {
pay.setAuditorType(AuditStatus.REFUSE.getCode());
});
}
updateBatchById(payList);
return save;
}
@Override
public BgtApplyForWgzPayAddInfoVO payInfo(Long userId, Long recruitId) {
BgtApplyForWgzPayAddInfoVO vo = new BgtApplyForWgzPayAddInfoVO();
//招工信息
BgtProjectRecruit recruit = iBgtProjectRecruitService.getById(recruitId);
vo.setRecruitId(recruitId);
vo.setRecruitAmount(recruit.getRecruitAmount());
vo.setRecruitName(recruit.getRecruitName());
//任务信息
FbsProjectTask task = taskService.getById(recruit.getTaskId());
vo.setTaskId(task.getId());
vo.setTaskName(task.getTaskName());
vo.setTaskAddress(task.getTaskAddress());
//申请信息
BgtProjectRecruitApply recruitApply = iBgtProjectRecruitApplyService.getOneByUserIdAndRecruitId(userId, recruitId);
vo.setEntryTime(recruitApply.getEntryTime());
vo.setLeaveTime(recruitApply.getLeaveTime());
vo.setWorkingState(recruitApply.getStatus());
//出勤天数
//总天数
Integer i = attendanceService.attendanceDetail(userId, recruitId, null);
//已结算天数
List<WgzPayCalculation> list = list(Wrappers.<WgzPayCalculation>lambdaQuery()
.eq(WgzPayCalculation::getUserId, userId)
.eq(WgzPayCalculation::getRecruitId, recruitId));
return BeanUtil.copyToList(wgzPayCalculations, BgtPayCalculationDetailListVO.class);
.eq(WgzPayCalculation::getRecruitId, recruitId)
.eq(WgzPayCalculation::getAuditorType, AuditStatus.PASS.getCode()));
if(CollectionUtil.isNotEmpty(list)) {
int sum = list.stream().mapToInt(WgzPayCalculation::getNum).sum();
i = i - sum;
}
vo.setNum(i);
//个人信息
return vo;
}
}

View File

@ -45,22 +45,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
fpt.task_describe,
fpt.task_address,
fpt.create_time,
#{dto.myTask} as myTask,
COALESCE(apply.applyNum, 0) as applyNum,
COALESCE(wage.taskReceiveAmount, 0) as taskReceiveAmount
taskApply.applyNum as applyNum,
wage.taskReceiveAmount as taskReceiveAmount,
#{dto.myTask} as myTask
FROM fbs_project_task fpt
LEFT JOIN zbf_project zp ON fpt.project_id = zp.id
LEFT JOIN
(SELECT task_id, COUNT(*) as applyNum
FROM fbs_project_task_apply
GROUP BY task_id)
apply ON fpt.id = apply.task_id
GROUP BY task_id) taskApply ON fpt.id = taskApply.task_id
LEFT JOIN
(SELECT task_id, SUM(applicant_amount) as taskReceiveAmount
FROM bgt_wage_application
WHERE audit_status = '2'
GROUP BY task_id)
wage ON fpt.id = wage.task_id
GROUP BY task_id) wage ON fpt.id = wage.task_id
<where>
<if test='!dto.myTask and dto.status != null and dto.status == "0"'>
AND NOT EXISTS (

View File

@ -53,22 +53,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
wdc.auditor_type,
wdc.dily_time,
wu.avatar_name,
wu.username
wu.username,
wu.status,
wu.create_time
from wgz_daily_clock wdc
left join wgz_user wu on wdc.user_id = wu.user_id
where wdc.auditor_user_id = #{dto.auditorUserId}
and wdc.recruit_id in (select id from bgt_project_recruit where task_id = #{dto.taskId})
<if test="dto.recruitId != null">
and wdc.recruit_id = #{dto.recruitId}
</if>
<if test="dto.username != null and dto.username != ''">
and wu.username like concat('%', #{dto.username}, '%')
</if>
<if test="dto.auditorType != null and dto.auditorType != ''">
and wdc.auditor_type = #{dto.auditorType}
</if>
<if test="dto.recruit_id != null">
<if test="dto.dilyTime != null">
and DATE(wdc.dily_time) = #{dto.dilyTime}
</if>
order by wdc.create_time desc
</select>
</mapper>

View File

@ -182,13 +182,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where w.auditor_user_id = #{dto.auditorUserId}
<if test="dto.taskId != null">
and a.task_id = #{dto.taskId}
and w.task_id = #{dto.taskId}
</if>
<if test="dto.username != null and dto.username != ''">
and w.user_name like concat('%', #{dto.userName}, '%')
</if>
<if test="dto.auditorTypes != null and dto.auditorTypes.size() > 0">
AND bpra.auditor_type IN
AND w.auditor_type IN
<foreach collection="dto.auditorTypes" item="auditorType" open="(" separator="," close=")">
#{auditorType}
</foreach>