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/ProjectPlanInfoServiceImpl.java | 126 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 123 insertions(+), 3 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..78f132c 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,31 @@
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.form.ProjectPlanInfoRequestForm;
import com.ycl.domain.query.ProjectPlanInfoQuery;
+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.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 +40,8 @@
public class ProjectPlanInfoServiceImpl extends ServiceImpl<ProjectPlanInfoMapper, ProjectPlanInfo> implements ProjectPlanInfoService {
private final ProjectPlanInfoMapper projectPlanInfoMapper;
+ private final ProjectPlanRecordMapper projectPlanRecordMapper;
+ private final ProjectPlanExamineRecordMapper projectPlanExamineRecordMapper;
/**
* 娣诲姞
@@ -98,9 +111,10 @@
* @return
*/
@Override
- public Result detail(Integer id) {
- ProjectPlanInfoVO vo = baseMapper.getById(id);
- Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ public Result detail(Long id) {
+ 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 +130,110 @@
.collect(Collectors.toList());
return Result.ok().data(vos);
}
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Result addPlanInfo(ProjectPlanInfoRequestForm form) {
+ // 鍒犻櫎鍘熸湁璁板綍
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(ProjectPlanInfo::getProjectPlanRecordId, form.getProjectPlanRecordId())
+ .remove();
+ // 鎵归噺鎻掑叆鏂拌褰�
+ List<ProjectPlanInfo> list = new ArrayList<>();
+ form.getAddList().forEach(item -> {
+ ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+ projectPlanInfo.setProjectPlanRecordId(form.getProjectPlanRecordId());
+ projectPlanInfo.setTitle(item.getTitle()); // 璁″垝椤规爣棰�
+ projectPlanInfo.setPlanStatus(0); // 璁″垝椤圭姸鎬佷负鏈紑濮�
+ projectPlanInfo.setProgressStatus(0); // 璁″垝椤硅繘搴︿负鏈紑濮�
+ projectPlanInfo.setStartTime(item.getStartTime()); // 璁″垝椤瑰紑濮嬫椂闂�
+ projectPlanInfo.setEndTime(item.getEndTime()); // 璁″垝椤圭粨鏉熸椂闂�
+ list.add(projectPlanInfo);
+ });
+ this.saveBatch(list);
+ // 鏇存柊璁″垝璁板綍鐨勬姇璧�,浠ュ強涓婃姤鐘舵��
+ new LambdaUpdateChainWrapper<>(projectPlanRecordMapper)
+ .eq(ProjectPlanRecord::getId, form.getProjectPlanRecordId())
+ .set(ProjectPlanRecord::getActualInvest, form.getActualInvest())
+ .set(ProjectPlanRecord::getReportStatus, 0)
+ .update();
+
+ // 鏂板涓�鏉″鏍歌褰�
+ for (ProjectPlanInfo i : list){
+ ProjectPlanExamineRecord item = new ProjectPlanExamineRecord();
+ item.setProjectPlanRecordId(form.getProjectPlanRecordId());
+ item.setEventType(0); // 璁″垝涓婃姤
+ item.setProjectPlanInfoId(i.getId());
+ projectPlanExamineRecordMapper.insert(item);
+ }
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ @Override
+ public Result savePlanInfo(ProjectPlanInfoForm form, Long planRecordId) {
+ ProjectPlanInfo entity = new ProjectPlanInfo();
+ BeanUtils.copyProperties(form, entity);
+ entity.setProjectPlanRecordId(planRecordId); // 椤圭洰璁″垝璁板綍id
+ entity.setProgressStatus(0); // 鏈紑濮�
+ entity.setPlanStatus(0); // 鏈鏍�
+ // 鍒ゆ柇id鏄惁瀛樺湪锛屽瓨鍦ㄥ垯鏇存柊锛屼笉瀛樺湪鍒欐柊澧�
+ if (entity.getId() == null) {
+ baseMapper.insert(entity);
+ } else {
+ new LambdaUpdateChainWrapper<>(baseMapper).eq(ProjectPlanInfo::getId, entity.getId())
+ .set(ProjectPlanInfo::getTitle, entity.getTitle())
+ .set(ProjectPlanInfo::getStartTime, entity.getStartTime())
+ .set(ProjectPlanInfo::getEndTime, entity.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 LambdaQueryChainWrapper<>(projectPlanExamineRecordMapper)
+ .eq(ProjectPlanExamineRecord::getProjectPlanInfoId, request.getId())
+ .eq(ProjectPlanExamineRecord::getProjectPlanRecordId, request.getProjectPlanRecordId())
+ .ne(ProjectPlanExamineRecord::getEventType, 2)
+ .eq(ProjectPlanExamineRecord::getDeleted, 0) // 鏈垹闄�
+ .orderByDesc(ProjectPlanExamineRecord::getGmtCreate)
+ .last("LIMIT 1")
+ .one();
+ // 鏇存柊鍘熸潵鐨勫鏍歌褰�
+ item.setEventType(1);
+ item.setDelayStartTime(request.getStartTime());
+ item.setDelayEndTime(request.getEndTime());
+ projectPlanExamineRecordMapper.updateById(item);
+ return Result.ok("寤舵湡鎴愬姛");
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Result resubmitPlanInfo(ProjectPlanInfoForm form) {
+ // 鏇存柊閲嶆柊涓婃姤鍚庣殑鍐呭
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(ProjectPlanInfo::getId, form.getId())
+ .set(ProjectPlanInfo::getTitle, form.getTitle())
+ .set(ProjectPlanInfo::getStartTime, form.getStartTime())
+ .set(ProjectPlanInfo::getEndTime, form.getEndTime())
+ .set(ProjectPlanInfo::getPlanStatus, 0) // 灏嗚璁″垝椤硅缃负鏈鏍哥殑鐘舵��
+ .update();
+
+ // 鏂板涓�鏉¤鍒掍笂鎶ョ殑瀹℃牳璁板綍
+ ProjectPlanExamineRecord item = new ProjectPlanExamineRecord();
+ item.setProjectPlanRecordId(form.getProjectPlanRecordId());
+ item.setProjectPlanInfoId(form.getId());
+ item.setEventType(0); // 璁″垝涓婃姤
+ item.setGmtCreate(new Date());
+ projectPlanExamineRecordMapper.insert(item);
+ return Result.ok("閲嶆柊涓婃姤鎴愬姛");
+ }
}
--
Gitblit v1.8.0