优化
This commit is contained in:
		@ -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);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -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);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user