xiangpei
2025-02-20 c9128daf5216f13246ad5c5a8976fe04cbe7568d
business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java
@@ -2,27 +2,28 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.base.Result;
import com.ycl.domain.entity.ProgressPlan;
import com.ycl.domain.entity.ProjectPlanInfo;
import com.ycl.domain.entity.ProjectPlanRecord;
import com.ycl.common.enums.business.FileTypeEnum;
import com.ycl.domain.entity.*;
import com.ycl.domain.form.ProgressPlanForm;
import com.ycl.domain.query.ProgressPlanQuery;
import com.ycl.domain.vo.ProgressPlanInfoFlag;
import com.ycl.domain.vo.ProgressPlanInfoResponseVO;
import com.ycl.domain.vo.ProgressPlanVO;
import com.ycl.domain.form.ProjectProgressFileListsForm;
import com.ycl.framework.utils.PageUtil;
import com.ycl.mapper.ProgressPlanMapper;
import com.ycl.mapper.ProjectPlanInfoMapper;
import com.ycl.mapper.ProjectPlanRecordMapper;
import com.ycl.mapper.*;
import com.ycl.service.ProgressPlanService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -39,6 +40,8 @@
    private final ProgressPlanMapper progressPlanMapper;
    private final ProjectPlanRecordMapper projectPlanRecordMapper;
    private final ProjectPlanInfoMapper projectPlanInfoMapper;
    private final PlanMapper planMapper;
    private final FileMapper fileMapper;
    /**
     * 添加
@@ -108,7 +111,7 @@
     * @return
     */
    @Override
    public Result detail(Integer id) {
    public Result detail(Long id) {
        ProgressPlanInfoResponseVO vo = new ProgressPlanInfoResponseVO();
        List<ProgressPlanInfoFlag> monthProgress = new ArrayList<>();
        List<ProgressPlanInfoFlag> seasonProgress = new ArrayList<>();
@@ -116,64 +119,66 @@
        // 查询月度计划项
        new LambdaQueryChainWrapper<>(projectPlanRecordMapper)
                .eq(ProjectPlanRecord::getProjectInfoId, id)
                .eq(ProjectPlanRecord::getPlanTimeFlag, 0)
                .list()
                .stream().forEach(record -> {
                    ProgressPlanInfoFlag progressPlanInfoFlag = new ProgressPlanInfoFlag();
                    progressPlanInfoFlag.setPlanTime(record.getPlanTime());
                    progressPlanInfoFlag.setPlanTimeFlag(record.getPlanTimeFlag());
                    progressPlanInfoFlag.setPlanInfoList(
                            new LambdaQueryChainWrapper<>(projectPlanInfoMapper)
                                    .eq(ProjectPlanInfo::getProjectPlanRecordId, record.getId())
                                    .list()
                    );
                    monthProgress.add(progressPlanInfoFlag);
                });
            .eq(ProjectPlanRecord::getProjectInfoId, id)
            .eq(ProjectPlanRecord::getPlanTimeFlag, 0)
            .list()
            .stream().forEach(record -> {
                ProgressPlanInfoFlag progressPlanInfoFlag = new ProgressPlanInfoFlag();
                progressPlanInfoFlag.setPlanTime(record.getPlanTime());
                progressPlanInfoFlag.setPlanTimeFlag(record.getPlanTimeFlag());
                progressPlanInfoFlag.setPlanInfoList(
                    new LambdaQueryChainWrapper<>(projectPlanInfoMapper)
                        .eq(ProjectPlanInfo::getProjectPlanRecordId, record.getId())
                        .eq(ProjectPlanInfo::getDeleted, 0) // 未删除
                        .eq(ProjectPlanInfo::getPlanStatus, 2) // 计划项审批通过
                        .list()
                );
                monthProgress.add(progressPlanInfoFlag);
            });
        // 查询季度计划项
        new LambdaQueryChainWrapper<>(projectPlanRecordMapper)
                .eq(ProjectPlanRecord::getProjectInfoId, id)
                .eq(ProjectPlanRecord::getPlanTimeFlag, 1)
                .list()
                .stream().forEach(record -> {
                    ProgressPlanInfoFlag progressPlanInfoFlag = new ProgressPlanInfoFlag();
                    progressPlanInfoFlag.setPlanTime(record.getPlanTime());
                    progressPlanInfoFlag.setPlanTimeFlag(record.getPlanTimeFlag());
                    progressPlanInfoFlag.setPlanInfoList(
                            new LambdaQueryChainWrapper<>(projectPlanInfoMapper)
                                    .eq(ProjectPlanInfo::getProjectPlanRecordId, record.getId())
                                    .list()
                    );
                    seasonProgress.add(progressPlanInfoFlag);
                });
            .eq(ProjectPlanRecord::getProjectInfoId, id)
            .eq(ProjectPlanRecord::getPlanTimeFlag, 1)
            .list()
            .stream().forEach(record -> {
                ProgressPlanInfoFlag progressPlanInfoFlag = new ProgressPlanInfoFlag();
                progressPlanInfoFlag.setPlanTime(record.getPlanTime());
                progressPlanInfoFlag.setPlanTimeFlag(record.getPlanTimeFlag());
                progressPlanInfoFlag.setPlanInfoList(
                    new LambdaQueryChainWrapper<>(projectPlanInfoMapper)
                        .eq(ProjectPlanInfo::getProjectPlanRecordId, record.getId())
                        .eq(ProjectPlanInfo::getDeleted, 0) // 未删除
                        .eq(ProjectPlanInfo::getPlanStatus, 2) // 计划项审批通过
                        .list()
                );
                seasonProgress.add(progressPlanInfoFlag);
            });
        // 查询年度计划项
        new LambdaQueryChainWrapper<>(projectPlanRecordMapper)
                .eq(ProjectPlanRecord::getProjectInfoId, id)
                .eq(ProjectPlanRecord::getPlanTimeFlag, 2)
                .list()
                .stream().forEach(record -> {
                    ProgressPlanInfoFlag progressPlanInfoFlag = new ProgressPlanInfoFlag();
                    progressPlanInfoFlag.setPlanTime(record.getPlanTime());
                    progressPlanInfoFlag.setPlanTimeFlag(record.getPlanTimeFlag());
                    progressPlanInfoFlag.setPlanInfoList(
                            new LambdaQueryChainWrapper<>(projectPlanInfoMapper)
                                    .eq(ProjectPlanInfo::getProjectPlanRecordId, record.getId())
                                    .list()
                    );
                    yearProgress.add(progressPlanInfoFlag);
                });
            .eq(ProjectPlanRecord::getProjectInfoId, id)
            .eq(ProjectPlanRecord::getPlanTimeFlag, 2)
            .list()
            .stream().forEach(record -> {
                ProgressPlanInfoFlag progressPlanInfoFlag = new ProgressPlanInfoFlag();
                progressPlanInfoFlag.setPlanTime(record.getPlanTime());
                progressPlanInfoFlag.setPlanTimeFlag(record.getPlanTimeFlag());
                progressPlanInfoFlag.setPlanInfoList(
                    new LambdaQueryChainWrapper<>(projectPlanInfoMapper)
                        .eq(ProjectPlanInfo::getProjectPlanRecordId, record.getId())
                        .eq(ProjectPlanInfo::getDeleted, 0) // 未删除
                        .eq(ProjectPlanInfo::getPlanStatus, 2) // 计划项审批通过
                        .list()
                );
                yearProgress.add(progressPlanInfoFlag);
            });
        vo.setMonthProgress(monthProgress);
        vo.setSeasonProgress(seasonProgress);
        vo.setYearProgress(yearProgress);
        return Result.ok().data(vo);
    }
    /**
     *
     */
    /**
     * 列表
@@ -187,4 +192,52 @@
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result saveProjectProgressFileLists(ProjectProgressFileListsForm form) {
            new LambdaUpdateChainWrapper<>(fileMapper)
                    .eq(File::getBusId, form.getProjectReportId())
                    .eq(File::getType, FileTypeEnum.PROJECT_SITUATION_DESCRIPTION.getType())
                    .remove();
        form.getSituationDescriptionFileList().stream()
                    .forEach(file -> {
                        file.setId(null);
                        file.setBusId(form.getProjectReportId());
                        file.setType(FileTypeEnum.PROJECT_SITUATION_DESCRIPTION);
                        fileMapper.insert(file);
                    });
            new LambdaUpdateChainWrapper<>(fileMapper)
                    .eq(File::getBusId, form.getProjectReportId())
                    .eq(File::getType, FileTypeEnum.PROJECT_COMPLETE_REPORT.getType())
                    .remove();
        form.getCompletedReportFileList().stream()
                    .forEach(file -> {
                        file.setId(null);
                        file.setBusId(form.getProjectReportId());
                        file.setType(FileTypeEnum.PROJECT_COMPLETE_REPORT);
                        fileMapper.insert(file);
                    });
        return Result.ok("保存成功");
    }
    @Override
    public Result getProjectProgressForm(Long id) {
        ProjectProgressFileListsForm result = new ProjectProgressFileListsForm();
        result.setProjectReportId(id);
        result.setCompletedReportFileList(new LambdaQueryChainWrapper<>(fileMapper)
            .eq(File::getBusId, id)
            .eq(File::getType, FileTypeEnum.PROJECT_COMPLETE_REPORT)
            .eq(File::getDeleted, 0)
            .list());
        result.setSituationDescriptionFileList(new LambdaQueryChainWrapper<>(fileMapper)
            .eq(File::getBusId, id)
            .eq(File::getType, FileTypeEnum.PROJECT_SITUATION_DESCRIPTION)
            .eq(File::getDeleted, 0)
            .list());
        return Result.ok().data(result);
    }
}