From 9025b9cf7ec8610003d445a31d93e35e7bd73c2e Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期三, 31 一月 2024 17:54:52 +0800
Subject: [PATCH] 修改
---
zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java | 112 +++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 86 insertions(+), 26 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..010f75d 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());
@@ -291,36 +294,15 @@
taskParamDto.setBizInfoDto(bizInfoDto);
if (finallyStep.getStepNo() > currentStep.getStepNo()) {
- String roleIds = currentStep.getApproverRoleIds();
- if (!StringUtils.isBlank(roleIds)) {
- roleIds = roleIds.replace(",,", ",");
- roleIds = roleIds.replace(",,", ",");
- }
- if (StringUtils.isBlank(roleIds)) {
- throw new RuntimeException("娌℃湁璁剧疆涓嬩竴姝ユ祦绋嬭鑹诧紒");
- }
Integer isSelfDept = currentStep.getIsSelfDept();
- String[] roleIdArr = roleIds.split(",");
- if (isSelfDept > 0 && bizInfoList.size() > 0) {
- deptIds = bizInfoList.get(0).getDeptIds();
+ if (isSelfDept > 0 && bizInfoDto!=null) {
+ deptIds = bizInfoDto.getDeptIds();
}
if (isSelfDept == 0)
deptIds = null;
- String zyIds = null;
String bizGroupId = bizInfoList.get(0).getBizId();
- if (!StringUtils.isBlank(currentStep.getTaskGroup())
- && !StringUtils.isBlank(currentStep.getTaskGroupSql())) {
- sqlStr = currentStep.getTaskGroupSql();
- sqlStr = sqlStr.replace("${bizId}", bizId.toString());
- sqlStr = sqlStr.replace("${bizGroupId}", bizGroupId);
- List<BizInfoDto> bizInfoList2 = baseDao.getSqlResult(sqlStr);
- if ("cj".equals(currentStep.getTaskGroup()))
- deptIds = bizInfoList2.get(0).getId();
- if ("zy".equals(currentStep.getTaskGroup()))
- zyIds = bizInfoList2.get(0).getId();
- }
if ("br".equals(currentStep.getTaskGroup())) {
List<SysUser> listUser = baseDao.getAssignUser(wfDef.getCode(), currentStep.getStepMarker(), bizId);
for (SysUser user : listUser) {
@@ -332,6 +314,36 @@
taskParamDto.setGroupId2(user.getId());
insertFlowTaskData(taskParamDto);
}
+ }
+ else if (StringUtils.isNotBlank(currentStep.getTaskGroup()) && "pall,zrr,csr,shr,pzr".contains(currentStep.getTaskGroup())) {
+ String userList = null;
+ if ("zrr".equals(currentStep.getTaskGroup())) {
+ userList = bizInfoDto.getZrr();
+ }
+ if ("csr".equals(currentStep.getTaskGroup())) {
+ userList = bizInfoDto.getCsr();
+ }
+ if ("shr".equals(currentStep.getTaskGroup())) {
+ userList = bizInfoDto.getShr();
+ }
+ if ("pzr".equals(currentStep.getTaskGroup())) {
+ userList = bizInfoDto.getPzr();
+ }
+ if ("pall".equals(currentStep.getTaskGroup())) {
+ userList = bizInfoDto.getPall();
+ }
+ if (userList != null) {
+ String[] userArr = userList.split(",");
+ Long groupId2 = UUIDUtil.generateId();
+ for (String userStr : userArr) {
+ Long userId = Convert.toLong(userStr);
+ SysUser user = baseDao.getUserById(userId);
+ existsUsers.put(userId, "");
+ taskParamDto.setUser(user);
+ taskParamDto.setGroupId2(groupId2);
+ insertFlowTaskData(taskParamDto);
+ }
+ }
} else if ("sqr".equals(currentStep.getTaskGroup())) {
SysUser user = baseDao.getUserById(bizInfoList.get(0).getApplyUserId());
existsUsers.put(user.getId(), "");
@@ -339,8 +351,15 @@
taskParamDto.setGroupId2(user.getId());
insertFlowTaskData(taskParamDto);
} else {
+ String roleIds = currentStep.getApproverRoleIds();
+ if (StringUtils.isBlank(roleIds)) {
+ throw new RuntimeException("娌℃湁璁剧疆涓嬩竴姝ユ祦绋嬭鑹诧紒");
+ }
+ String[] roleIdArr = roleIds.split(",");
for (String roleId : roleIdArr) {
- List<SysUser> listUser = baseDao.getTaskUser(roleId, deptIds, zyIds);
+ if (StringUtils.isBlank(roleId))
+ continue;
+ List<SysUser> listUser = baseDao.getTaskUser(roleId, deptIds);
for (SysUser user : listUser) {
if (existsUsers.containsKey(user.getId())) {
continue;
@@ -355,6 +374,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 +398,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 +1041,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