From c784b78aefd07e81c9c15745184cb2dc44f097a5 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 17 一月 2025 16:51:34 +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