This commit is contained in:
zt
2025-02-25 17:13:38 +08:00
parent cffc1422b0
commit 293560e4a3
25 changed files with 482 additions and 44 deletions

View File

@ -6,7 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
@ -15,6 +15,6 @@ import java.io.Serializable;
@ApiModel("务工者APP-查询个人基本信息对象")
public class WgzAppPersonalBasicInformationReq implements Serializable {
@ApiModelProperty("唯一标识")
@NotBlank(message = "唯一标识不能为空")
@NotNull(message = "唯一标识不能为空")
private Long userId;
}

View File

@ -1,5 +1,7 @@
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.BgtPayCalculationListDTO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
@ -103,4 +105,14 @@ public interface IWgzPayCalculationService extends IServicePlus<WgzPayCalculatio
*/
BigDecimal getPayByTaskAndBgt(Long taskId, Long auditorUserId);
/**
* 总体考勤情况-工资结算-基础信息
*/
BgtPayCalculationDetailBaseVO baseInfo(Long userId, Long recruitId);
/**
* 总体考勤情况-工资结算-结算记录
*/
List<BgtPayCalculationDetailListVO> record(Long userId, Long recruitId);
}

View File

@ -7,6 +7,8 @@ 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.BgtPayCalculationDetailBaseVO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationDetailListVO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationListDTO;
import com.ruoyi.bgt.domain.dto.BgtPayCalculationUpdateDTO;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
@ -16,15 +18,20 @@ import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
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.WgzPayCalculationQueryBo;
import com.ruoyi.wgz.bo.req.WgzAppApplyForPayrollSettlementListReq;
import com.ruoyi.wgz.bo.req.WgzApplyForPayrollSettlementAddReq;
import com.ruoyi.wgz.bo.res.WgzAppApplyForPayrollSettlementListRes;
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.service.IWgzAttendanceService;
import com.ruoyi.wgz.service.IWgzPayCalculationFilesService;
import com.ruoyi.wgz.service.IWgzPayCalculationService;
import com.ruoyi.wgz.service.IWgzUserService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -54,6 +61,14 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
@Autowired
private IWgzPayCalculationFilesService iWgzPayCalculationFilesService;
@Autowired
private IWgzUserService wgzUserService;
@Autowired
private IFbsProjectTaskService taskService;
@Autowired
private IWgzAttendanceService attendanceService;
@Override
public WgzPayCalculation queryById(Long id){
@ -201,4 +216,48 @@ public class WgzPayCalculationServiceImpl extends ServicePlusImpl<WgzPayCalculat
.eq(WgzPayCalculation::getAuditorUserId, auditorUserId));
return list.stream().map(WgzPayCalculation::getRecruitAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
}
@Override
public BgtPayCalculationDetailBaseVO baseInfo(Long userId, Long recruitId) {
BgtPayCalculationDetailBaseVO vo = new BgtPayCalculationDetailBaseVO();
WgzUser wgzUser = wgzUserService.getById(userId);
vo.setScore(wgzUser.getScore());
vo.setUsername(wgzUser.getUsername());
vo.setAvatarName(wgzUser.getAvatarName());
BgtProjectRecruit recruit = iBgtProjectRecruitService.getById(recruitId);
vo.setRecruitName(recruit.getRecruitName());
FbsProjectTask task = taskService.getById(recruit.getTaskId());
vo.setTaskName(task.getTaskName());
BgtProjectRecruitApply apply = iBgtProjectRecruitApplyService.getOne(Wrappers.<BgtProjectRecruitApply>lambdaQuery()
.eq(BgtProjectRecruitApply::getRecruitId, recruitId).eq(BgtProjectRecruitApply::getUserId, userId)
.last("limit 1"));
vo.setEntryTime(apply.getEntryTime());
Integer i = attendanceService.attendanceDetail(userId, apply.getId(), null);
BigDecimal totalAmount = recruit.getRecruitAmount().multiply(BigDecimal.valueOf(i));
vo.setAllAmount(totalAmount);
List<WgzPayCalculation> gzs = findByUserIdRecruitIdNewestData(userId, apply.getId());
BigDecimal addSum = new BigDecimal(0);
for (WgzPayCalculation gz : gzs) {
//金额*天数=实际工资
BigDecimal multiply = gz.getRecruitAmount().multiply(BigDecimal.valueOf(gz.getNum()));
addSum = addSum.add(multiply);
}
vo.setPayAmount(totalAmount);
vo.setResidueAmount(vo.getAllAmount().subtract(vo.getPayAmount()));
return vo;
}
@Override
public List<BgtPayCalculationDetailListVO> record(Long userId, Long recruitId) {
List<WgzPayCalculation> wgzPayCalculations = baseMapper.selectList(Wrappers.<WgzPayCalculation>lambdaQuery()
.eq(WgzPayCalculation::getUserId, userId)
.eq(WgzPayCalculation::getRecruitId, recruitId));
return BeanUtil.copyToList(wgzPayCalculations, BgtPayCalculationDetailListVO.class);
}
}