From a38a1ac77bb6ac9ea8bf0cf5f5f6b68d0e6e6974 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 02 一月 2024 08:44:10 +0800
Subject: [PATCH] 修改

---
 zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java b/zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java
index fb05ff9..6b570d6 100644
--- a/zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java
+++ b/zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java
@@ -5,6 +5,9 @@
 package com.zt.modules.workflow.service;
 
 import cn.hutool.core.convert.Convert;
+import com.zt.common.entity.BaseEntity;
+import com.zt.common.entity.BusiEntity;
+import com.zt.common.entity.FlowInfo;
 import com.zt.common.service.BaseService;
 import com.zt.common.utils.UUIDUtil;
 import com.zt.core.context.UserContext;
@@ -27,6 +30,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 宸ヤ綔娴佹湇鍔�
@@ -246,7 +250,6 @@
             // 宸茬稉瀛樺湪瑭叉椹熶簡锛屼笉鐢ㄧ辜绾�
             return;
         }
-
         WfDefStep currentStep = workflowConfigService.get(currentStepId);
         WfDefStep finallyStep = this.queryWfDefFinallyStep(currentStep.getWfDefId().toString());
 
@@ -355,6 +358,18 @@
             if (existsUsers.size() == 0) {
                 throw new RuntimeException("娌℃湁绗﹀悎(" + wfDef.getName() + ")娴佺▼鐨勪笅涓�姝�(" + currentStep.getName() + ")鎵ц浜猴紒");
             }
+
+            WfDefStep prevStep = workflowConfigService.get(prevStepId);
+            if (prevStep!=null) {
+                String updateSql = prevStep.getUpdateSql();
+                if (org.apache.commons.lang3.StringUtils.isNotBlank(updateSql)) {
+                    updateSql = updateSql.replace("${bizId}", bizId.toString());
+                    updateSql = updateSql.replace("${bizId}", bizId.toString());
+                    updateSql = updateSql.replace("${nickName}", UserContext.getUser().getRealName());
+                    updateSql = updateSql.replace("${userId}", UserContext.getUser().getId().toString());
+                    baseDao.exeSql(updateSql);
+                }
+            }
         } else {
             taskParamDto.setUser(null);
             taskParamDto.setGroupId2(null);
@@ -367,8 +382,21 @@
             if (org.apache.commons.lang3.StringUtils.isNotBlank(updateSql)) {
                 updateSql = updateSql.replace("${bizId}", bizId.toString());
                 updateSql = updateSql.replace("${bizId}", bizId.toString());
-                updateSql = updateSql.replace("${bizId}", bizId.toString());
+                updateSql = updateSql.replace("${nickName}", UserContext.getUser().getRealName());
+                updateSql = updateSql.replace("${userId}", UserContext.getUser().getId().toString());
                 baseDao.exeSql(updateSql);
+            }
+
+            WfDefStep prevStep = workflowConfigService.get(prevStepId);
+            if (prevStep!=null) {
+                updateSql = prevStep.getUpdateSql();
+                if (org.apache.commons.lang3.StringUtils.isNotBlank(updateSql)) {
+                    updateSql = updateSql.replace("${bizId}", bizId.toString());
+                    updateSql = updateSql.replace("${bizId}", bizId.toString());
+                    updateSql = updateSql.replace("${nickName}", UserContext.getUser().getRealName());
+                    updateSql = updateSql.replace("${userId}", UserContext.getUser().getId().toString());
+                    baseDao.exeSql(updateSql);
+                }
             }
 
             if (!StringUtils.isBlank(currentStep.getNextFlows())) {
@@ -997,4 +1025,20 @@
     public void deleteFlowStep(String wfIdCode, String stepIdMark, Long bizId){
         baseDao.deleteFlowStep(wfIdCode,stepIdMark,bizId);
     }
+
+    public void getRunFlow(List<? extends BusiEntity> dataList, String flowCode) {
+        List<Long> ids = dataList.stream().map(f -> f.getId()).collect(Collectors.toList());
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("bizIds", ids);
+        params.put("flowCode", flowCode);
+        List<FlowInfo> list = baseDao.getRunFlow(params);
+        for (BaseEntity item : dataList) {
+            List<FlowInfo> list2 = list.stream().filter(item2->item2.getBizId().equals(item.getId())).collect(Collectors.toList());
+            if (list2.size()>0) {
+                item.setFlowInfo(list2.get(0));
+            }else{
+                item.setFlowInfo(new FlowInfo());
+            }
+        }
+    }
 }

--
Gitblit v1.9.1