回退--->人员组织删除判断工作流存在信息
This commit is contained in:
parent
c95300cd5c
commit
782bd13681
@ -11,12 +11,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.gexin.fastjson.JSON;
|
import com.gexin.fastjson.JSON;
|
||||||
import com.wflow.bean.entity.WflowModels;
|
|
||||||
import com.wflow.mapper.WflowModelsMapper;
|
|
||||||
import com.zhgd.exception.CustomException;
|
import com.zhgd.exception.CustomException;
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
@ -53,13 +50,6 @@ import com.zhgd.xmgl.util.*;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.flowable.engine.HistoryService;
|
|
||||||
import org.flowable.engine.RuntimeService;
|
|
||||||
import org.flowable.engine.TaskService;
|
|
||||||
import org.flowable.engine.history.HistoricProcessInstance;
|
|
||||||
import org.flowable.engine.history.HistoricProcessInstanceQuery;
|
|
||||||
import org.flowable.engine.runtime.ProcessInstance;
|
|
||||||
import org.flowable.task.api.Task;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@ -158,12 +148,6 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
|
|||||||
private XzSystemUserToCompanyProjectMapper xzSystemUserToCompanyProjectMapper;
|
private XzSystemUserToCompanyProjectMapper xzSystemUserToCompanyProjectMapper;
|
||||||
@Value("${mqtt-scope}")
|
@Value("${mqtt-scope}")
|
||||||
private String scope;
|
private String scope;
|
||||||
@Autowired
|
|
||||||
private HistoryService historyService;
|
|
||||||
@Autowired
|
|
||||||
private RuntimeService runtimeService;
|
|
||||||
@Autowired
|
|
||||||
private WflowModelsMapper wflowModelsMapper;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getToken(Map<String, Object> map) {
|
public Map<String, Object> getToken(Map<String, Object> map) {
|
||||||
@ -1202,56 +1186,16 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
|
|||||||
@Override
|
@Override
|
||||||
public void delete(Map<String, Object> map) {
|
public void delete(Map<String, Object> map) {
|
||||||
String id = MapUtils.getString(map, "id");
|
String id = MapUtils.getString(map, "id");
|
||||||
// 判断是否存在工作流的流程中
|
String projectSn = MapUtils.getString(map, "projectSn");
|
||||||
List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery().unfinished().list();
|
SystemUser systemUser = getById(id);
|
||||||
Set<String> processDefinitionId = list.stream().map(l -> l.getProcessDefinitionId()).collect(Collectors.toSet());
|
if (systemUser == null) {
|
||||||
List<WflowModels> models = wflowModelsMapper.selectList(Wrappers.<WflowModels>lambdaQuery()
|
throw new OpenAlertException(MessageUtil.get("notFindErr"));
|
||||||
.in(WflowModels::getProcessDefId, processDefinitionId));
|
|
||||||
List<String> modelName = new ArrayList<>();
|
|
||||||
for (WflowModels model : models) {
|
|
||||||
List<String> 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) {
|
if (systemUser.getAccountType() == 10) {
|
||||||
throw new CustomException("该人员有正在进行中审批流程,请完成流程后再删除账号", HttpStatus.INTERNAL_SERVER_ERROR);
|
//新用户
|
||||||
}
|
deleteTenantOrSupplier(id, projectSn);
|
||||||
// String projectSn = MapUtils.getString(map, "projectSn");
|
} else {
|
||||||
// SystemUser systemUser = getById(id);
|
deleteUser(id);
|
||||||
// if (systemUser == null) {
|
|
||||||
// throw new OpenAlertException(MessageUtil.get("notFindErr"));
|
|
||||||
// }
|
|
||||||
// if (systemUser.getAccountType() == 10) {
|
|
||||||
// //新用户
|
|
||||||
// deleteTenantOrSupplier(id, projectSn);
|
|
||||||
// } else {
|
|
||||||
// deleteUser(id);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
private void getUserIds(JSONObject children, List<String> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,17 +2,11 @@ package com.zhgd.xmgl.modules.xz.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.wflow.bean.entity.WflowModels;
|
|
||||||
import com.wflow.mapper.WflowModelsMapper;
|
|
||||||
import com.zhgd.exception.CustomException;
|
|
||||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||||
import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg;
|
import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg;
|
||||||
@ -22,15 +16,13 @@ import com.zhgd.xmgl.util.PageUtil;
|
|||||||
import com.zhgd.xmgl.util.RefUtil;
|
import com.zhgd.xmgl.util.RefUtil;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.flowable.engine.HistoryService;
|
|
||||||
import org.flowable.engine.RuntimeService;
|
|
||||||
import org.flowable.engine.history.HistoricProcessInstance;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,13 +37,6 @@ public class XzProjectOrgServiceImpl extends ServiceImpl<XzProjectOrgMapper, XzP
|
|||||||
@Autowired
|
@Autowired
|
||||||
private XzProjectOrgMapper xzProjectOrgMapper;
|
private XzProjectOrgMapper xzProjectOrgMapper;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private HistoryService historyService;
|
|
||||||
@Autowired
|
|
||||||
private RuntimeService runtimeService;
|
|
||||||
@Autowired
|
|
||||||
private WflowModelsMapper wflowModelsMapper;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<XzProjectOrg> queryPageList(HashMap<String, Object> paramMap) {
|
public IPage<XzProjectOrg> queryPageList(HashMap<String, Object> paramMap) {
|
||||||
QueryWrapper<XzProjectOrg> queryWrapper = getQueryWrapper(paramMap);
|
QueryWrapper<XzProjectOrg> queryWrapper = getQueryWrapper(paramMap);
|
||||||
@ -163,45 +148,6 @@ public class XzProjectOrgServiceImpl extends ServiceImpl<XzProjectOrgMapper, XzP
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void delete(String id) {
|
public void delete(String id) {
|
||||||
// 判断是否存在工作流的流程中
|
|
||||||
List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery().unfinished().list();
|
|
||||||
Set<String> processDefinitionId = list.stream().map(l -> l.getProcessDefinitionId()).collect(Collectors.toSet());
|
|
||||||
List<WflowModels> models = wflowModelsMapper.selectList(Wrappers.<WflowModels>lambdaQuery()
|
|
||||||
.in(WflowModels::getProcessDefId, processDefinitionId));
|
|
||||||
List<String> modelName = new ArrayList<>();
|
|
||||||
for (WflowModels model : models) {
|
|
||||||
List<String> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (orgIds.contains(id)) {
|
|
||||||
modelName.add(model.getFormName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (modelName.size() > 0) {
|
|
||||||
throw new CustomException("该组织有正在进行中审批流程,请完成流程后再删除", HttpStatus.INTERNAL_SERVER_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
XzProjectOrg xzProjectOrg = baseMapper.selectById(id);
|
XzProjectOrg xzProjectOrg = baseMapper.selectById(id);
|
||||||
if (xzProjectOrg == null) {
|
if (xzProjectOrg == null) {
|
||||||
throw new OpenAlertException("未找到对应实体");
|
throw new OpenAlertException("未找到对应实体");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user