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<OaProjectPhaseMapper, OaProjectPhase> 
 | 
    implements OaProjectPhaseService{ 
 | 
    @Autowired 
 | 
    private OaProjectPhaseMapper oaProjectPhaseMapper; 
 | 
    @Autowired 
 | 
    private OaProjectPhaseTaskService oaProjectPhaseTaskService; 
 | 
  
 | 
    @Override 
 | 
    public List<OaProjectPhaseDto> listByProjectId(Integer oaProjectId) { 
 | 
        List<OaProjectPhase> oaProjectPhases = oaProjectPhaseMapper.selectList(new LambdaQueryWrapper<OaProjectPhase>() 
 | 
                .eq(OaProjectPhase::getOaProjectId, oaProjectId)); 
 | 
        List<OaProjectPhaseDto> collect = oaProjectPhases.stream().map(oaProjectPhase -> { 
 | 
            OaProjectPhaseDto oaProjectPhaseDto = new OaProjectPhaseDto(); 
 | 
            BeanUtils.copyProperties(oaProjectPhase, oaProjectPhaseDto); 
 | 
//            List<OaProjectPhaseTask> 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<OaProjectPhaseTask>() 
 | 
                .eq(OaProjectPhaseTask::getPhaseId, phaseId)); 
 | 
        return oaProjectPhaseMapper.deleteById(phaseId) > 0; 
 | 
    } 
 | 
} 
 |