From ae6fd06555845067b72a0b094126c858275a5bd9 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 29 十一月 2024 06:54:04 +0800 Subject: [PATCH] 项目分类查询、异常项目 --- business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java | 138 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 134 insertions(+), 4 deletions(-) diff --git a/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java index cb52f7d..ab00a4e 100644 --- a/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java @@ -1,20 +1,29 @@ package com.ycl.service.impl; 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.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.vo.ProjectProgressFileListsRequest; import com.ycl.framework.utils.PageUtil; -import com.ycl.mapper.ProgressPlanMapper; +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; @@ -29,6 +38,10 @@ public class ProgressPlanServiceImpl extends ServiceImpl<ProgressPlanMapper, ProgressPlan> implements ProgressPlanService { private final ProgressPlanMapper progressPlanMapper; + private final ProjectPlanRecordMapper projectPlanRecordMapper; + private final ProjectPlanInfoMapper projectPlanInfoMapper; + private final PlanMapper planMapper; + private final FileMapper fileMapper; /** * 娣诲姞 @@ -99,10 +112,71 @@ */ @Override public Result detail(Integer id) { - ProgressPlanVO vo = baseMapper.getById(id); - Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + ProgressPlanInfoResponseVO vo = new ProgressPlanInfoResponseVO(); + List<ProgressPlanInfoFlag> monthProgress = new ArrayList<>(); + List<ProgressPlanInfoFlag> seasonProgress = new ArrayList<>(); + List<ProgressPlanInfoFlag> yearProgress = new ArrayList<>(); + + // 鏌ヨ鏈堝害璁″垝椤� + 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); + }); + + // 鏌ヨ瀛e害璁″垝椤� + 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); + }); + + // 鏌ヨ骞村害璁″垝椤� + 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); + }); + + vo.setMonthProgress(monthProgress); + vo.setSeasonProgress(seasonProgress); + vo.setYearProgress(yearProgress); return Result.ok().data(vo); } + + /** + * + */ /** * 鍒楄〃 @@ -116,4 +190,60 @@ .collect(Collectors.toList()); return Result.ok().data(vos); } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result saveProjectProgressFileLists(ProjectProgressFileListsRequest request) { + new LambdaUpdateChainWrapper<>(fileMapper) + .eq(File::getBusId, request.getProjectReportId()) + .eq(File::getType, FileTypeEnum.PROJECT_SITUATION_DESCRIPTION.getType()) + .set(File::getDeleted,1) + .update(); + + request.getSituationDescriptionFileList().stream() + .forEach(file -> { + file.setId(null); + file.setBusId(request.getProjectReportId().longValue()); + file.setType(FileTypeEnum.PROJECT_SITUATION_DESCRIPTION); + file.setGmtCreate(new Date()); + file.setGmtUpdate(new Date()); + file.setDeleted(0); + fileMapper.insert(file); + }); + + new LambdaUpdateChainWrapper<>(fileMapper) + .eq(File::getBusId, request.getProjectReportId()) + .eq(File::getType, FileTypeEnum.PROJECT_COMPLETE_REPORT.getType()) + .set(File::getDeleted,1) + .update(); + + request.getCompletedReportFileList().stream() + .forEach(file -> { + file.setId(null); + file.setBusId(request.getProjectReportId().longValue()); + file.setType(FileTypeEnum.PROJECT_COMPLETE_REPORT); + file.setGmtCreate(new Date()); + file.setGmtUpdate(new Date()); + file.setDeleted(0); + fileMapper.insert(file); + }); + return Result.ok("淇濆瓨鎴愬姛"); + } + + @Override + public Result getProjectProgressForm(Integer id) { + ProjectProgressFileListsRequest result = new ProjectProgressFileListsRequest(); + 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); + } } -- Gitblit v1.8.0