From 80662b34fe93b4ede00c7fc03fbd9f01355c94e2 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 07 四月 2025 13:52:17 +0800 Subject: [PATCH] 修改任务接口 --- business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java | 134 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 129 insertions(+), 5 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..f17a350 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.form.ProjectProgressFileListsForm; 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; /** * 娣诲姞 @@ -98,9 +111,72 @@ * @return */ @Override - public Result detail(Integer id) { - ProgressPlanVO vo = baseMapper.getById(id); - Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + public Result detail(Long id) { + 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()) + .eq(ProjectPlanInfo::getDeleted, 0) // 鏈垹闄� + .eq(ProjectPlanInfo::getPlanStatus, 2) // 璁″垝椤瑰鎵归�氳繃 + .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()) + .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()) + .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); } @@ -116,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); + } } -- Gitblit v1.8.0