From bb3bc1c8508dc28d1780c2b0e068595baedb5100 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期五, 12 一月 2024 16:42:17 +0800 Subject: [PATCH] 修改 --- zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java | 115 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 82 insertions(+), 33 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 8780f22..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; /** * 宸ヤ綔娴佹湇鍔� @@ -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 (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(), ""); @@ -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; @@ -356,15 +375,17 @@ throw new RuntimeException("娌℃湁绗﹀悎(" + wfDef.getName() + ")娴佺▼鐨勪笅涓�姝�(" + currentStep.getName() + ")鎵ц浜猴紒"); } - String updateSql = currentStep.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); + 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); @@ -380,6 +401,18 @@ 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())) { @@ -1008,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