From 064c8bbbbfddb866307356d62f30dbc9e5710e96 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 17 九月 2025 16:01:18 +0800
Subject: [PATCH] feat(collaborativeApproval): 新增会议管理相关功能
---
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 92 +++++++++++++++++++++++++++++++++-------------
1 files changed, 66 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index c461873..e866bbf 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -14,11 +14,15 @@
import com.ruoyi.approve.utils.DailyRedisCounter;
import com.ruoyi.approve.vo.ApproveGetAndUpdateVo;
import com.ruoyi.approve.vo.ApproveProcessVO;
+import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.other.service.impl.TempFileServiceImpl;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysDeptMapper;
import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.pojo.CommonFile;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +32,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
+import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
@@ -49,12 +54,14 @@
private final DailyRedisCounter dailyRedisCounter;
private final SysDeptMapper sysDeptMapper;
- private final ApproveNodeServiceImpl approveNodeService;
+ private final IApproveNodeService approveNodeService;
private final SysUserMapper sysUserMapper;
private final ApproveProcessMapper approveProcessMapper;
+ private final TempFileServiceImpl tempFileService;
+ private final CommonFileMapper commonFileMapper;
@Override
- public void addApprove(ApproveProcessVO approveProcessVO) throws ParseException {
+ public void addApprove(ApproveProcessVO approveProcessVO) throws Exception {
SysUser sysUser = sysUserMapper.selectUserById(approveProcessVO.getApproveUser());
SysDept sysDept = sysDeptMapper.selectDeptById(approveProcessVO.getApproveDeptId());
String[] split = approveProcessVO.getApproveUserIds().split(",");
@@ -83,6 +90,7 @@
approveProcess.setApproveOverTime(null);
approveProcess.setApproveStatus(0);
approveProcess.setApproveDelete(0);
+ approveProcess.setApproveType(approveProcessVO.getApproveType());
approveProcess.setCreateTime(LocalDateTime.now());
approveProcess.setTenantId(approveProcessVO.getApproveDeptId());
approveProcess.setApproveUserIds(approveProcessVO.getApproveUserIds());
@@ -102,6 +110,8 @@
save(approveProcess);
//鍒濆鍖栧鎵硅妭鐐�
approveNodeService.initApproveNodes(approveProcessVO.getApproveUserIds(),approveID,approveProcessVO.getApproveDeptId());
+ // 闄勪欢缁戝畾
+ tempFileService.migrateTempFilesToFormal(approveProcess.getId(), approveProcessVO.getTempFileIds(), FileNameType.ApproveProcess.getValue());
}
@Override
@@ -117,6 +127,13 @@
@Override
public IPage<ApproveProcess> listAll(Page page,ApproveProcess approveProcess) {
IPage<ApproveProcess> approveProcessIPage = approveProcessMapper.listPage(page,approveProcess);
+ List<ApproveProcess> records = approveProcessIPage.getRecords();
+ for (ApproveProcess record : records) {
+ List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .eq(CommonFile::getCommonId, record.getId())
+ .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue()));
+ record.setCommonFileList(commonFiles);
+ }
return approveProcessIPage;
}
@@ -142,40 +159,63 @@
queryWrapper.eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId());
queryWrapper.last("limit 1");
ApproveProcess one = getOne(queryWrapper);
+ one.setCommonFileList(commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .eq(CommonFile::getCommonId, one.getId())
+ .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue())));
return one;
}
private final ApproveNodeMapper approveNodeMapper;
- @Override
- public void updateApproveProcessStatus(ApproveNode approveNode,Integer status) {
- LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>();
- approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveId, approveNode.getApproveProcessId())
- .eq(ApproveProcess::getApproveDelete, 0)
- .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId())
- .last("limit 1");
- ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper);
- if(approveProcess == null) throw new RuntimeException("瀹℃壒涓嶅瓨鍦�");
- LambdaQueryWrapper<ApproveNode> approveNodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
- approveNodeLambdaQueryWrapper.eq(ApproveNode::getApproveProcessId, approveNode.getApproveProcessId())
- .eq(ApproveNode::getApproveNodeOrder, approveNode.getApproveNodeOrder() + 1)
- .eq(ApproveNode::getDeleteFlag, 0)
- .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId())
- .last("limit 1");
- ApproveNode approveNode1 = approveNodeMapper.selectOne(approveNodeLambdaQueryWrapper);
- approveProcess.setApproveStatus(status);
- if(approveNode1 != null){
- approveProcess.setApproveUserCurrentId(approveNode.getApproveNodeUserId());
- approveProcess.setApproveUserCurrentName(approveNode1.getApproveNodeUser());
- }
- updateById(approveProcess);
- }
@Override
- public void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) {
+ public void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) throws IOException {
ApproveProcess approve = approveProcessMapper.selectById(approveGetAndUpdateVo.getId());
+ approve.setApproveUserIds(approveGetAndUpdateVo.getApproveUserIds());
approve.setApproveReason(approveGetAndUpdateVo.getApproveReason());
+ SysUser sysUser = sysUserMapper.selectUserById(approveGetAndUpdateVo.getApproveUser());
+ String[] split = approveGetAndUpdateVo.getApproveUserIds().split(",");
+ if(split.length == 0){
+ throw new RuntimeException("璇烽�夋嫨瀹℃壒浜�");
+ }
+ List<SysUser> sysUsers = sysUserMapper.selectUserByIds(Arrays.asList(split).stream().map(Long::parseLong).collect(Collectors.toList()));
+ if(CollectionUtils.isEmpty(sysUsers)) throw new RuntimeException("璇烽�夋嫨瀹℃壒浜�");
+ if(sysUser == null) throw new RuntimeException("鐢宠浜轰笉瀛樺湪");
+ approve.setApproveUserName(sysUser.getNickName());
+ approve.setApproveUser(sysUser.getUserId());
+ //瀹℃牳涓笉鍙互缂栬緫瀹℃牳浜�
+ if(approve.getApproveStatus() != 1){
+ approve.setApproveUserCurrentId(Long.parseLong(split[0]));
+ approve.setApproveUserCurrentName(sysUsers.stream().filter(user -> user.getUserId().equals(Long.parseLong(split[0]))).collect(Collectors.toList()).get(0).getNickName());
+ }
updateById(approve);
+ //淇敼瀹℃壒浜�
+ // 鍏堝垹闄� 鍚庢柊澧�
+ LambdaQueryWrapper<ApproveNode> approveNodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ approveNodeLambdaQueryWrapper.eq(ApproveNode::getApproveProcessId, approve.getApproveId())
+ .eq(ApproveNode::getDeleteFlag, 0)
+ .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId())
+ .orderByAsc(ApproveNode::getApproveNodeOrder);
+ approveNodeMapper.delete(approveNodeLambdaQueryWrapper);
+ approveNodeService.initApproveNodes(approveGetAndUpdateVo.getApproveUserIds(),approve.getApproveId(),approve.getTenantId());
+
+// int i = 0;
+// for (ApproveNode approveNode : list) {
+// int finalI = i;
+// if(i >= split.length){
+// approveNode.setDeleteFlag(1);
+// }else{
+// List<SysUser> collect = sysUsers.stream().filter(user -> user.getUserId().equals(Long.parseLong(split[finalI]))).collect(Collectors.toList());
+// if(CollectionUtils.isEmpty(collect)){
+// throw new RuntimeException("璇烽�夋嫨姝g‘鐨勫鎵逛汉");
+// }
+// approveNode.setApproveNodeUserId(collect.get(0).getUserId());
+// approveNode.setApproveNodeUser(collect.get(0).getNickName());
+// }
+// approveNodeMapper.updateById(approveNode);
+// i++;
+// }
+ tempFileService.migrateTempFilesToFormal(approve.getId(), approveGetAndUpdateVo.getTempFileIds(), FileNameType.ApproveProcess.getValue());
}
--
Gitblit v1.9.3