From 3adc66dee9660cf10e40abfdf52113306c7d34f3 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 29 十一月 2024 14:41:09 +0800
Subject: [PATCH] 项目库导出之导出目标列表内容
---
business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 102 insertions(+), 2 deletions(-)
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java
index 6c533f0..5c0b5fa 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java
@@ -1,20 +1,32 @@
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.ProjectPlanExamineRecord;
import com.ycl.domain.entity.ProjectPlanInfo;
+import com.ycl.domain.entity.ProjectPlanRecord;
import com.ycl.domain.form.ProjectPlanInfoForm;
import com.ycl.domain.query.ProjectPlanInfoQuery;
+import com.ycl.domain.vo.ProjectPlanInfoRequest;
+import com.ycl.domain.vo.ProjectPlanInfoResponseVO;
import com.ycl.domain.vo.ProjectPlanInfoVO;
import com.ycl.framework.utils.PageUtil;
+import com.ycl.mapper.ProjectPlanExamineRecordMapper;
import com.ycl.mapper.ProjectPlanInfoMapper;
+import com.ycl.mapper.ProjectPlanRecordMapper;
import com.ycl.service.ProjectPlanInfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
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 +41,8 @@
public class ProjectPlanInfoServiceImpl extends ServiceImpl<ProjectPlanInfoMapper, ProjectPlanInfo> implements ProjectPlanInfoService {
private final ProjectPlanInfoMapper projectPlanInfoMapper;
+ private final ProjectPlanRecordMapper projectPlanRecordMapper;
+ private final ProjectPlanExamineRecordMapper projectPlanExamineRecordMapper;
/**
* 娣诲姞
@@ -99,8 +113,9 @@
*/
@Override
public Result detail(Integer id) {
- ProjectPlanInfoVO vo = baseMapper.getById(id);
- Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ ProjectPlanInfoResponseVO vo = new ProjectPlanInfoResponseVO();
+ vo.setList(new LambdaQueryChainWrapper<>(baseMapper).eq(ProjectPlanInfo::getProjectPlanRecordId, id).list());
+ vo.setActualInvest(new LambdaQueryChainWrapper<>(projectPlanRecordMapper).eq(ProjectPlanRecord::getId, id).one().getActualInvest());
return Result.ok().data(vo);
}
@@ -116,4 +131,89 @@
.collect(Collectors.toList());
return Result.ok().data(vos);
}
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Result addPlanInfo(ProjectPlanInfoRequest request) {
+ if (request.getAddList() == null || request.getAddList().isEmpty()) {{
+ return Result.error("璇烽�夋嫨瑕佹坊鍔犵殑璁″垝椤�");
+ }}
+ // 鍒犻櫎鍘熸湁璁板綍
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(ProjectPlanInfo::getProjectPlanRecordId, request.getProjectPlanRecordId())
+ .set(ProjectPlanInfo::getDeleted, 1)
+ .update();
+ // 鎵归噺鎻掑叆鏂拌褰�
+ List<ProjectPlanInfo> list = new ArrayList<>();
+ request.getAddList().forEach(item -> {
+ ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+ projectPlanInfo.setProjectPlanRecordId(request.getProjectPlanRecordId().longValue());
+ projectPlanInfo.setTitle(item.getTitle());
+ projectPlanInfo.setProgressStatus(0);
+ projectPlanInfo.setStartTime(item.getStartTime());
+ projectPlanInfo.setEndTime(item.getEndTime());
+ projectPlanInfo.setDeleted(0);
+ list.add(projectPlanInfo);
+ });
+ list.stream().forEach(i -> {
+ baseMapper.insert(i);
+ });
+ // 鏇存柊璁″垝璁板綍鐨勬姇璧�,浠ュ強涓婃姤鐘舵��
+ new LambdaUpdateChainWrapper<>(projectPlanRecordMapper)
+ .eq(ProjectPlanRecord::getId, request.getProjectPlanRecordId())
+ .set(ProjectPlanRecord::getActualInvest, request.getActualInvest())
+ .set(ProjectPlanRecord::getReportStatus, 0)
+ .update();
+
+ // 鏂板涓�鏉″鏍歌褰�
+ ProjectPlanExamineRecord item = new ProjectPlanExamineRecord();
+ item.setProjectPlanRecordId(request.getProjectPlanRecordId().longValue());
+ item.setEventType(0);
+ item.setGmtCreate(new Date());
+ item.setDeleted(0);
+ list.stream().forEach(i -> {
+ item.setProjectPlanInfoId(i.getId().longValue());
+ projectPlanExamineRecordMapper.insertOne(item);
+// projectPlanExamineRecordMapper.insertOne(item);
+ });
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ @Override
+ public Result savePlanInfo(ProjectPlanInfo item) {
+ item.setProgressStatus(0);
+ // 鍒ゆ柇id鏄惁瀛樺湪锛屽瓨鍦ㄥ垯鏇存柊锛屼笉瀛樺湪鍒欐柊澧�
+ if (item.getId() == null) {
+ baseMapper.insertOne(item);
+ } else {
+ new LambdaUpdateChainWrapper<>(baseMapper).eq(ProjectPlanInfo::getId, item.getId())
+ .set(ProjectPlanInfo::getTitle, item.getTitle())
+ .set(ProjectPlanInfo::getStartTime, item.getStartTime())
+ .set(ProjectPlanInfo::getEndTime, item.getEndTime())
+ .update();
+ }
+ return Result.ok("淇濆瓨鎴愬姛");
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Result delayPlanInfo(ProjectPlanInfoForm request) {
+ // 鏇存敼璁″垝椤规椂闂�
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(ProjectPlanInfo::getId, request.getId())
+ .set(ProjectPlanInfo::getStartTime, request.getStartTime())
+ .set(ProjectPlanInfo::getEndTime, request.getEndTime())
+ .update();
+ // 鏂板涓�鏉″鏍歌褰�
+ ProjectPlanExamineRecord item = new ProjectPlanExamineRecord();
+ item.setProjectPlanRecordId(request.getProjectPlanRecordId().longValue());
+ item.setProjectPlanInfoId(request.getId().longValue());
+ item.setEventType(1);
+ item.setDelayStartTime(request.getStartTime());
+ item.setDelayEndTime(request.getEndTime());
+ item.setGmtCreate(new Date());
+ item.setDeleted(0);
+ projectPlanExamineRecordMapper.insertOne(item);
+ return Result.ok("寤舵湡鎴愬姛");
+ }
}
--
Gitblit v1.8.0