From 71a55d8d0d886eb6e489a7b581eb799f3a8ad054 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 23 七月 2025 22:46:00 +0800
Subject: [PATCH] 增加流程列表中 “文件”列的显示方式
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java | 90 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 89 insertions(+), 1 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java
index ae3d979..4e88db8 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java
@@ -1,12 +1,20 @@
package org.springblade.mdm.flow.service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.flowable.task.api.Task;
import org.springblade.core.mp.base.BizServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.DateUtil;
import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.mapper.ApproveRecordMapper;
import org.springblade.mdm.flow.vo.ApproveRecordVO;
+import org.springblade.mdm.program.entity.ProcessProgRef;
+import org.springblade.mdm.program.service.ProcessProgRefService;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -20,8 +28,88 @@
@Service
@AllArgsConstructor
public class ApproveRecordService extends BizServiceImpl<ApproveRecordMapper, ApproveRecord> {
-
+ private final ProcessProgRefService processProgRefService;
+ private final FlowCommonService flowCommonService;
public List<ApproveRecordVO> listByNcProgramId(Long ncProgramId) {
return this.getBaseMapper().listByNcProgramId(ncProgramId);
}
+
+ public void saveApproveRecords(Task task, String processInstanceId, String operateResult, String comment) {
+
+ String processDefinitionKey = flowCommonService.getDefinitionKey(processInstanceId);
+
+ LambdaQueryWrapper<ProcessProgRef> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(ProcessProgRef::getProcessInstanceId, processInstanceId);
+ List<ProcessProgRef> refList = processProgRefService.list(queryWrapper);
+ if(!refList.isEmpty()) {
+ for (ProcessProgRef refObj : refList) {
+ ApproveRecord rec = new ApproveRecord();
+ rec.setTaskName(task.getName());
+ rec.setComment(comment==null? StringUtils.EMPTY:comment);
+ rec.setNcProgramId(refObj.getNcProgramId());
+ rec.setOperateResult(operateResult);//瀹℃壒缁撴灉
+ rec.setOperateTime(DateUtil.now());
+ rec.setProcessInstanceId(processInstanceId);
+ rec.setProcessDefinitionKey(processDefinitionKey);
+ rec.setUserId(AuthUtil.getUserId());
+ rec.setUserNickname(AuthUtil.getNickName());
+
+ save(rec);
+ }
+
+ //妫�鏌cprogram涓簄ull鐨勬暟鎹�
+ updateApproveRecords(processInstanceId,refList);
+ }else{
+ //濡傛灉杩樻病鏈夊叧鑱旂殑绋嬪簭鏁版嵁锛屽垯鎻掑叆涓�涓猵rogramId涓簄ull鐨�
+ ApproveRecord rec = new ApproveRecord();
+ rec.setTaskName(task.getName());
+ rec.setTaskDefinitionId(task.getTaskDefinitionId());
+
+ rec.setComment(comment==null? StringUtils.EMPTY:comment);
+ rec.setProcessInstanceId(processInstanceId);
+ rec.setProcessDefinitionKey(processDefinitionKey);
+ rec.setOperateResult(operateResult);
+ rec.setOperateTime(DateUtil.now());
+ rec.setNcProgramId(null);//绌虹殑绋嬪簭id
+ rec.setUserId(AuthUtil.getUserId());
+ rec.setUserNickname(AuthUtil.getNickName());
+
+ save(rec);
+ }
+ }
+
+ /**
+ * 鏇存柊浠ュ墠鏃犳枃浠舵椂鍊欑殑鏁版嵁銆�
+ * @param processInstanceId
+ */
+ void updateApproveRecords(String processInstanceId,List<ProcessProgRef> refList) {
+
+ if(refList.isEmpty()) {
+ return;
+ }
+ List<ApproveRecord> records = this.lambdaQuery().isNull(ApproveRecord::getNcProgramId).eq(ApproveRecord::getProcessInstanceId, processInstanceId).list();
+ if(records.isEmpty()) {
+ return;
+ }
+
+ for(ApproveRecord record:records) {
+
+ for(int j=0;j< refList.size();j++) {
+ ProcessProgRef refObj = refList.get(j);
+
+ ApproveRecord record2 = new ApproveRecord();
+ BeanUtils.copyProperties(record, record2);
+ record2.setNcProgramId(refObj.getNcProgramId());
+
+ if(j>0){//鍚庣画鏁版嵁闇�瑕佹柊澧炴暟鎹�
+ record2.setId(null);
+ save(record2);
+ }else{//绗竴鏉℃槸鏇存柊鍘熺邯褰�
+ updateById(record2);
+ }
+ }
+
+ }
+
+ }
}
--
Gitblit v1.9.3