From cdf29a8f6fb9990f82ccc1d3f47bfba48cfaf4fc Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期三, 10 一月 2024 17:24:53 +0800 Subject: [PATCH] 修改 --- zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java | 84 ++++++++++++++++++++++++++++++------------ 1 files changed, 60 insertions(+), 24 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 6151833..852f7ef 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; /** * 宸ヤ綔娴佹湇鍔� @@ -290,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) { @@ -331,6 +314,36 @@ taskParamDto.setGroupId2(user.getId()); insertFlowTaskData(taskParamDto); } + } + else if (currentStep.getTaskGroup() !=null && "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(), ""); @@ -338,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; @@ -1021,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