From 824f08436f671a10180e0d1cd432b49966e090e1 Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Wed, 12 Jun 2024 10:38:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SystemUserServiceImpl.java | 63 +++++++++++----- .../service/impl/XzProjectOrgServiceImpl.java | 73 ++++++++++++------- 2 files changed, 92 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java index 76a87748d..38b9bd76a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java @@ -1258,28 +1258,32 @@ public class SystemUserServiceImpl extends ServiceImpl list = historyService.createHistoricProcessInstanceQuery().unfinished().list(); Set processDefinitionId = list.stream().map(l -> l.getProcessDefinitionId()).collect(Collectors.toSet()); - Set startUserIds = list.stream().map(l -> l.getStartUserId()).collect(Collectors.toSet()); - List models = wflowModelsMapper.selectList(Wrappers.lambdaQuery() - .in(WflowModels::getProcessDefId, processDefinitionId)); + StringBuilder stringBuilder = new StringBuilder("该人员有正在进行中的"); List modelName = new ArrayList<>(); - for (WflowModels model : models) { - 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")); + if (processDefinitionId.size() > 0) { + Set startUserIds = list.stream().map(l -> l.getStartUserId()).collect(Collectors.toSet()); + if (processDefinitionId.size() > 0) { + List models = wflowModelsMapper.selectList(Wrappers.lambdaQuery() + .in(WflowModels::getProcessDefId, processDefinitionId)); + for (WflowModels model : models) { + 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 || startUserIds.contains(id)) { + stringBuilder.append("审批流程"); } } - getUserIds(process.getJSONObject("children"), userIds); - if (userIds.contains(id)) { - modelName.add(model.getFormName()); - } - } - StringBuilder stringBuilder = new StringBuilder("该人员有正在进行中的"); - if (modelName.size() > 0 || startUserIds.contains(id)) { - stringBuilder.append("审批流程"); } // 判断是否存在安全检查中 List xzSecurityQualityInspectionRecords = xzSecurityQualityInspectionRecordService.list(Wrappers.lambdaQuery() @@ -1332,6 +1336,27 @@ public class SystemUserServiceImpl extends ServiceImpl 10) { throw new CustomException(stringBuilder + ",请完成流程后再删除账号", HttpStatus.INTERNAL_SERVER_ERROR); } + // 判断是否有参与到流程审批中 + List modelList = wflowModelsMapper.selectList(null); + modelName = new ArrayList<>(); + for (WflowModels model : modelList) { + 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); + } String projectSn = MapUtils.getString(map, "projectSn"); SystemUser systemUser = getById(id); if (systemUser == null) { 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 357efea5d..baa6ac51e 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 @@ -15,6 +15,8 @@ import com.wflow.mapper.WflowModelsMapper; import com.zhgd.exception.CustomException; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; +import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper; import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg; import com.zhgd.xmgl.modules.xz.mapper.XzProjectOrgMapper; import com.zhgd.xmgl.modules.xz.service.IXzProjectOrgService; @@ -48,7 +50,7 @@ public class XzProjectOrgServiceImpl extends ServiceImpl modelName = new ArrayList<>(); for (WflowModels model : models) { List orgIds = new ArrayList<>(); - JSONObject process = JSONObject.parseObject(model.getProcess()); - JSONArray branchs = process.getJSONObject("children").getJSONArray("branchs"); - if (branchs != null && branchs.size() > 0) { - for (int i = 0; i < branchs.size(); i++) { - JSONArray groups = branchs.getJSONObject(i).getJSONObject("props").getJSONArray("groups"); - if (groups != null && groups.size() > 0) { - for (int j = 0; j < groups.size(); j++) { - JSONArray conditions = groups.getJSONObject(j).getJSONArray("conditions"); - if (conditions != null && conditions.size() > 0) { - for (int k = 0; k < conditions.size(); k++) { - JSONArray value = conditions.getJSONObject(k).getJSONArray("value"); - if (value != null && value.size() > 0) { - for (int z = 0; z < value.size(); z++) { - JSONObject jsonObject = value.getJSONObject(z); - orgIds.add(jsonObject.getString("id")); - } - } - } - } - } - } - } - } + getOrg(model, orgIds); if (orgIds.contains(id)) { modelName.add(model.getFormName()); } @@ -201,7 +181,18 @@ public class XzProjectOrgServiceImpl extends ServiceImpl 0) { throw new CustomException("该组织有正在进行中审批流程,请完成流程后再删除", HttpStatus.INTERNAL_SERVER_ERROR); } - + List modelList = wflowModelsMapper.selectList(null); + modelName = new ArrayList<>(); + for (WflowModels model : modelList) { + List orgIds = new ArrayList<>(); + getOrg(model, orgIds); + if (orgIds.contains(id)) { + modelName.add(model.getFormName()); + } + } + if (modelName.size() > 0) { + throw new CustomException("该组织有参与工作流流程审批,请调整流程后再删除", HttpStatus.INTERNAL_SERVER_ERROR); + } XzProjectOrg xzProjectOrg = baseMapper.selectById(id); if (xzProjectOrg == null) { throw new OpenAlertException("未找到对应实体"); @@ -211,6 +202,12 @@ public class XzProjectOrgServiceImpl extends ServiceImpl systemUserList = systemUserMapper.selectList(new LambdaQueryWrapper() + .eq(SystemUser::getXzProjectOrgId, id)); + if (CollUtil.isNotEmpty(systemUserList)) { + throw new OpenAlertException("该部门下有人员,无法删除"); + } baseMapper.deleteById(id); } @@ -296,4 +293,30 @@ public class XzProjectOrgServiceImpl extends ServiceImpl orgIds) { + JSONObject process = JSONObject.parseObject(model.getProcess()); + JSONArray branchs = process.getJSONObject("children").getJSONArray("branchs"); + if (branchs != null && branchs.size() > 0) { + for (int i = 0; i < branchs.size(); i++) { + JSONArray groups = branchs.getJSONObject(i).getJSONObject("props").getJSONArray("groups"); + if (groups != null && groups.size() > 0) { + for (int j = 0; j < groups.size(); j++) { + JSONArray conditions = groups.getJSONObject(j).getJSONArray("conditions"); + if (conditions != null && conditions.size() > 0) { + for (int k = 0; k < conditions.size(); k++) { + JSONArray value = conditions.getJSONObject(k).getJSONArray("value"); + if (value != null && value.size() > 0) { + for (int z = 0; z < value.size(); z++) { + JSONObject jsonObject = value.getJSONObject(z); + orgIds.add(jsonObject.getString("id")); + } + } + } + } + } + } + } + } + } + }