This commit is contained in:
zt
2025-03-07 14:45:49 +08:00
parent b0e8333724
commit 3ec18b78ae
50 changed files with 511 additions and 188 deletions

View File

@ -1,6 +1,9 @@
package com.ruoyi.fbs.service;
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.bgt.domain.vo.BgtProjectTaskUseCountVO;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.fbs.bo.FbsProjectTaskQueryBo;
@ -92,6 +95,16 @@ public interface IFbsProjectTaskService extends IServicePlus<FbsProjectTask> {
*/
AppTaskDetailRecruitVO recruit(Long id);
/**
* 任务详情-务工人员分页
*/
TableDataInfo<BgtProjectRecruitApplyVO> taskUserList(BgtProjectTaskUserDTO dto);
/**
* 任务详情-务工人员统计
*/
BgtProjectTaskUseCountVO taskUserCount(Long id);
/**
* 查询所有在进行中的任务
*/

View File

@ -6,15 +6,14 @@ 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.ruoyi.bgt.bo.BgtProjectRecruitQueryBo;
import com.ruoyi.bgt.domain.BgtProjectRecruit;
import com.ruoyi.bgt.domain.dto.BgtProjectRecruitApplyQueryDTO;
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
import com.ruoyi.bgt.domain.dto.BgtProjectTaskUserDTO;
import com.ruoyi.bgt.domain.dto.BgtWageApplicationQueryDTO;
import com.ruoyi.bgt.domain.vo.BgtDayAttendanceCountVO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitApplyVO;
import com.ruoyi.bgt.domain.vo.BgtProjectTaskUseCountVO;
import com.ruoyi.bgt.domain.vo.BgtWageApplicationListVO;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
import com.ruoyi.bgt.service.IBgtProjectTaskProgressService;
import com.ruoyi.bgt.service.IBgtWageApplicationService;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
@ -43,10 +42,8 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 分包商项目任务Service业务层处理
@ -59,8 +56,7 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
@Autowired
private IZbfProjectService zbfProjectService;
@Autowired
private IBgtProjectRecruitService recruitService;
@Autowired
private IBgtProjectRecruitApplyService recruitApplyService;
@Autowired
@ -261,20 +257,34 @@ public class FbsProjectTaskServiceImpl extends ServicePlusImpl<FbsProjectTaskMap
public AppTaskDetailRecruitVO recruit(Long id) {
AppTaskDetailRecruitVO appTaskDetailVO = new AppTaskDetailRecruitVO();
appTaskDetailVO.setId(id);
//务工者数量列表
BgtProjectRecruitQueryBo bgtProjectRecruitQueryBo = new BgtProjectRecruitQueryBo();
bgtProjectRecruitQueryBo.setTaskId(id);
List<Long> recruitIds = recruitService.queryList(bgtProjectRecruitQueryBo).stream().map(BgtProjectRecruit::getId).collect(Collectors.toList());
BgtProjectRecruitApplyQueryDTO bgtProjectRecruitApplyQueryDTO = new BgtProjectRecruitApplyQueryDTO();
bgtProjectRecruitApplyQueryDTO.setRecruitIds(recruitIds);
bgtProjectRecruitApplyQueryDTO.setStatus(Collections.singletonList(RecruitApplyStatus.WORKING.getCode()));
List<BgtProjectRecruitApplyVO> vos = recruitApplyService.appQueryList(bgtProjectRecruitApplyQueryDTO);
appTaskDetailVO.setTotal(vos.size());
appTaskDetailVO.setApplyList(vos.subList(0, Math.min(vos.size(), 3)));
BgtProjectTaskUserDTO dto = new BgtProjectTaskUserDTO();
dto.setPageNum(1);
dto.setPageSize(3);
dto.setTaskId(id);
TableDataInfo<BgtProjectRecruitApplyVO> page = recruitApplyService.taskUserList(dto);
appTaskDetailVO.setTotal((int)page.getTotal());
appTaskDetailVO.setApplyList(page.getRows());
return appTaskDetailVO;
}
@Override
public TableDataInfo<BgtProjectRecruitApplyVO> taskUserList(BgtProjectTaskUserDTO dto) {
return recruitApplyService.taskUserList(dto);
}
@Override
public BgtProjectTaskUseCountVO taskUserCount(Long id) {
LambdaQueryWrapper<BgtProjectRecruitApply> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BgtProjectRecruitApply::getTaskId, id);
wrapper.in(BgtProjectRecruitApply::getStatus, RecruitApplyStatus.getTaskStatus());
List<BgtProjectRecruitApply> list = recruitApplyService.list(wrapper);
long wgzPassNum = list.stream().filter(apply -> apply.getStatus().equals(RecruitApplyStatus.WGZ_PASS.getCode())).count();
long outWorkNum = list.stream().filter(apply -> apply.getStatus().equals(RecruitApplyStatus.OUT_WORK.getCode())).count();
long workingNum = list.stream().filter(apply -> apply.getStatus().equals(RecruitApplyStatus.WORKING.getCode())).count();
return new BgtProjectTaskUseCountVO(wgzPassNum,workingNum,outWorkNum);
}
@Override
public List<FbsProjectTask> findOngoingTask() {