From 0336abec3b39f76dc31a927a8e53913801c812cb Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Wed, 12 Jun 2024 19:28:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/XzProjectOrgServiceImpl.java | 67 ++++++++++++++++--- 1 file changed, 56 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzProjectOrgServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzProjectOrgServiceImpl.java index baa6ac51e..c853fb1c1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzProjectOrgServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzProjectOrgServiceImpl.java @@ -168,18 +168,34 @@ public class XzProjectOrgServiceImpl extends ServiceImpl list = historyService.createHistoricProcessInstanceQuery().unfinished().list(); Set processDefinitionId = list.stream().map(l -> l.getProcessDefinitionId()).collect(Collectors.toSet()); - List models = wflowModelsMapper.selectList(Wrappers.lambdaQuery() - .in(WflowModels::getProcessDefId, processDefinitionId)); List modelName = new ArrayList<>(); - for (WflowModels model : models) { - List orgIds = new ArrayList<>(); - getOrg(model, orgIds); - if (orgIds.contains(id)) { - modelName.add(model.getFormName()); + if (processDefinitionId.size() > 0) { + List models = wflowModelsMapper.selectList(Wrappers.lambdaQuery() + .in(WflowModels::getProcessDefId, processDefinitionId)); + for (WflowModels model : models) { + List orgIds = new ArrayList<>(); + getOrg(model, orgIds); + if (orgIds.contains(id)) { + modelName.add(model.getFormName()); + } + + List userIds = new ArrayList<>(); + JSONObject process = JSONObject.parseObject(model.getProcess()); + JSONArray assignedUser1 = process.getJSONObject("props").getJSONArray("assignedUser"); + if (assignedUser1 != null) { + for (int i = 0; i < assignedUser1.size(); i++) { + JSONObject jsonObject = assignedUser1.getJSONObject(i); + userIds.add(jsonObject.getString("id")); + } + } + getUserIds(process.getJSONObject("children"), userIds); + if (userIds.contains(id)) { + modelName.add(model.getFormName()); + } + } + if (modelName.size() > 0) { + throw new CustomException("该组织有正在进行中审批流程,请完成流程后再删除", HttpStatus.INTERNAL_SERVER_ERROR); } - } - if (modelName.size() > 0) { - throw new CustomException("该组织有正在进行中审批流程,请完成流程后再删除", HttpStatus.INTERNAL_SERVER_ERROR); } List modelList = wflowModelsMapper.selectList(null); modelName = new ArrayList<>(); @@ -189,6 +205,19 @@ public class XzProjectOrgServiceImpl extends ServiceImpl userIds = new ArrayList<>(); + JSONObject process = JSONObject.parseObject(model.getProcess()); + JSONArray assignedUser1 = process.getJSONObject("props").getJSONArray("assignedUser"); + if (assignedUser1 != null) { + for (int i = 0; i < assignedUser1.size(); i++) { + JSONObject jsonObject = assignedUser1.getJSONObject(i); + userIds.add(jsonObject.getString("id")); + } + } + getUserIds(process.getJSONObject("children"), userIds); + if (userIds.contains(id)) { + modelName.add(model.getFormName()); + } } if (modelName.size() > 0) { throw new CustomException("该组织有参与工作流流程审批,请调整流程后再删除", HttpStatus.INTERNAL_SERVER_ERROR); @@ -206,7 +235,7 @@ public class XzProjectOrgServiceImpl extends ServiceImpl systemUserList = systemUserMapper.selectList(new LambdaQueryWrapper() .eq(SystemUser::getXzProjectOrgId, id)); if (CollUtil.isNotEmpty(systemUserList)) { - throw new OpenAlertException("该部门下有人员,无法删除"); + throw new OpenAlertException("该组织下有人员,无法删除"); } baseMapper.deleteById(id); } @@ -319,4 +348,20 @@ public class XzProjectOrgServiceImpl extends ServiceImpl userIds) { + if (children != null) { + JSONObject props = children.getJSONObject("props"); + if (props != null) { + getUserIds(children.getJSONObject("children"), userIds); + JSONArray assignedUser = props.getJSONArray("assignedUser"); + if (assignedUser != null) { + for (int i = 0; i < assignedUser.size(); i++) { + JSONObject jsonObject = assignedUser.getJSONObject(i); + userIds.add(jsonObject.getString("id")); + } + } + } + } + } + }