package com.ruoyi.oA.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.oA.dto.OaProjectPhaseDto; import com.ruoyi.oA.pojo.OaProjectPhase; import com.ruoyi.oA.pojo.OaProjectPhaseTask; import com.ruoyi.oA.service.OaProjectPhaseService; import com.ruoyi.oA.mapper.OaProjectPhaseMapper; import com.ruoyi.oA.service.OaProjectPhaseTaskService; import lombok.val; import org.hibernate.validator.constraints.br.TituloEleitoral; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; /** * @author ywx * @description 针对表【oa_project_phase(OA系统-项目阶段表)】的数据库操作Service实现 * @createDate 2025-09-24 09:18:46 */ @Service @Transactional(rollbackFor = Exception.class) public class OaProjectPhaseServiceImpl extends ServiceImpl implements OaProjectPhaseService{ @Autowired private OaProjectPhaseMapper oaProjectPhaseMapper; @Autowired private OaProjectPhaseTaskService oaProjectPhaseTaskService; @Override public List listByProjectId(Integer oaProjectId) { List oaProjectPhases = oaProjectPhaseMapper.selectList(new LambdaQueryWrapper() .eq(OaProjectPhase::getOaProjectId, oaProjectId)); List collect = oaProjectPhases.stream().map(oaProjectPhase -> { OaProjectPhaseDto oaProjectPhaseDto = new OaProjectPhaseDto(); BeanUtils.copyProperties(oaProjectPhase, oaProjectPhaseDto); // List oaProjectPhaseTasks = oaProjectPhaseTaskService.listByPhaseId(oaProjectPhaseDto.getPhaseId()); oaProjectPhaseDto.setOaProjectPhaseTasks(oaProjectPhaseTaskService.listByPhaseId(oaProjectPhaseDto.getPhaseId())); return oaProjectPhaseDto; }).collect(Collectors.toList()); return collect; } @Override public boolean deleteById(Integer phaseId) { // 先删除项目阶段下的任务 oaProjectPhaseTaskService.remove(new LambdaQueryWrapper() .eq(OaProjectPhaseTask::getPhaseId, phaseId)); return oaProjectPhaseMapper.deleteById(phaseId) > 0; } }