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")); + } + } + } + } + } + }