REQ-2752-新增根据条件删除流程管理员接口

This commit is contained in:
yangqicheng 2024-10-14 11:28:52 +08:00
parent 165e9f65b7
commit 47cc2d4bd0
6 changed files with 116 additions and 17 deletions

View File

@ -4,6 +4,7 @@ import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
import cn.axzo.workflow.common.annotation.InvokeMode;
import cn.axzo.workflow.common.annotation.Manageable;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminCreateDTO;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminDeleteDTO;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminQueryDTO;
import cn.axzo.workflow.common.model.response.admin.ProcessAdminVo;
import cn.azxo.framework.common.model.CommonResponse;
@ -65,6 +66,14 @@ public interface ProcessAdminApi {
@InvokeMode(SYNC)
CommonResponse<Void> deleteCommonProcessAdmin(@RequestParam Long id);
/**
* 根据条件删除管理员
* @param dto 删除条件
* @return
*/
@DeleteMapping("/api/process/admin/delete/criteria")
@InvokeMode(SYNC)
CommonResponse<Void> deleteProcessAdminCriteria(@RequestParam ProcessAdminDeleteDTO dto);
/**
* 删除管理员

View File

@ -1,6 +1,7 @@
package cn.axzo.workflow.admin.service;
import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminDeleteDTO;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminQueryDTO;
import java.util.List;
@ -36,9 +37,9 @@ public interface ExtAxProcessAdminService {
/**
* 根据条件删除管理员配置
* @param processAdmin 删除条件
* @param deleteDTO 删除条件
*/
void delete(ExtAxProcessAdmin processAdmin);
void delete(ProcessAdminDeleteDTO deleteDTO);
/**
* 批量删除管理员

View File

@ -7,6 +7,7 @@ import cn.axzo.workflow.admin.repository.mapper.ExtAxProcessAdminMapper;
import cn.axzo.workflow.admin.service.ExtAxProcessAdminService;
import cn.axzo.workflow.common.enums.AdminDataSource;
import cn.axzo.workflow.common.enums.AdminTypeEnum;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminDeleteDTO;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminQueryDTO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.stereotype.Service;
@ -51,23 +52,12 @@ public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
return extAxProcessAdminMapper.selectCount(getQueryWrapper(queryDTO));
}
private LambdaQueryWrapper<ExtAxProcessAdmin> getQueryWrapper(ProcessAdminQueryDTO queryDTO) {
return new LambdaQueryWrapper<ExtAxProcessAdmin>()
.in(!CollectionUtils.isEmpty(queryDTO.getProcessAdminIds()), ExtAxProcessAdmin::getId, queryDTO.getProcessAdminIds())
.eq(Objects.nonNull(queryDTO.getWorkspaceId()), ExtAxProcessAdmin::getWorkspaceId, queryDTO.getWorkspaceId())
.eq(queryDTO.getAdminType() != null, ExtAxProcessAdmin::getAdminType, queryDTO.getAdminType())
.eq(Objects.nonNull(queryDTO.getOrganizationalUnitId()), ExtAxProcessAdmin::getOrganizationalUnitId, queryDTO.getOrganizationalUnitId())
.in(!CollectionUtils.isEmpty(queryDTO.getPersonIds()), ExtAxProcessAdmin::getPersonId, queryDTO.getPersonIds())
.eq(Objects.nonNull(queryDTO.getDataSource()), ExtAxProcessAdmin::getDataSource, queryDTO.getDataSource())
.eq(ExtAxProcessAdmin::getIsDelete, TableIsDeleteEnum.NORMAL.value);
}
@Override
public void delete(ExtAxProcessAdmin processAdmin) {
if (processAdmin == null) {
public void delete(ProcessAdminDeleteDTO deleteDTO) {
if (deleteDTO == null) {
return;
}
extAxProcessAdminMapper.delete(buildQueryWrapper(processAdmin));
extAxProcessAdminMapper.delete(getDeleteWrapper(deleteDTO));
}
@Override
@ -87,11 +77,35 @@ public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
if (CollectionUtils.isEmpty(extAxProcessAdmins)) {
return;
}
if (extAxProcessAdmins.stream().anyMatch(ad -> ad.getAdminType() == AdminTypeEnum.SUPER_ADMIN || ad.getDataSource() == AdminDataSource.SYSTEM_ENTRY)) {
if (extAxProcessAdmins.stream().anyMatch(ad -> ad.getAdminType() == AdminTypeEnum.SUPER_ADMIN)) {
throw new ServiceException("超级管理员不允许删除");
}
if (extAxProcessAdmins.stream().anyMatch(ad -> ad.getDataSource() == AdminDataSource.SYSTEM_ENTRY)) {
throw new ServiceException("系统数据不允许删除");
}
}
private LambdaQueryWrapper<ExtAxProcessAdmin> getQueryWrapper(ProcessAdminQueryDTO queryDTO) {
return new LambdaQueryWrapper<ExtAxProcessAdmin>()
.in(!CollectionUtils.isEmpty(queryDTO.getProcessAdminIds()), ExtAxProcessAdmin::getId, queryDTO.getProcessAdminIds())
.eq(Objects.nonNull(queryDTO.getWorkspaceId()), ExtAxProcessAdmin::getWorkspaceId, queryDTO.getWorkspaceId())
.eq(queryDTO.getAdminType() != null, ExtAxProcessAdmin::getAdminType, queryDTO.getAdminType())
.eq(Objects.nonNull(queryDTO.getOrganizationalUnitId()), ExtAxProcessAdmin::getOrganizationalUnitId, queryDTO.getOrganizationalUnitId())
.in(!CollectionUtils.isEmpty(queryDTO.getPersonIds()), ExtAxProcessAdmin::getPersonId, queryDTO.getPersonIds())
.eq(Objects.nonNull(queryDTO.getDataSource()), ExtAxProcessAdmin::getDataSource, queryDTO.getDataSource())
.eq(ExtAxProcessAdmin::getIsDelete, TableIsDeleteEnum.NORMAL.value);
}
private LambdaQueryWrapper<ExtAxProcessAdmin> getDeleteWrapper(ProcessAdminDeleteDTO deleteDTO) {
return new LambdaQueryWrapper<ExtAxProcessAdmin>()
.in(!CollectionUtils.isEmpty(deleteDTO.getProcessAdminIds()), ExtAxProcessAdmin::getId, deleteDTO.getProcessAdminIds())
.eq(Objects.nonNull(deleteDTO.getWorkspaceId()), ExtAxProcessAdmin::getWorkspaceId, deleteDTO.getWorkspaceId())
.eq(deleteDTO.getAdminType() != null, ExtAxProcessAdmin::getAdminType, deleteDTO.getAdminType())
.eq(Objects.nonNull(deleteDTO.getOrganizationalUnitId()), ExtAxProcessAdmin::getOrganizationalUnitId, deleteDTO.getOrganizationalUnitId())
.in(!CollectionUtils.isEmpty(deleteDTO.getPersonIds()), ExtAxProcessAdmin::getPersonId, deleteDTO.getPersonIds())
.eq(Objects.nonNull(deleteDTO.getDataSource()), ExtAxProcessAdmin::getDataSource, deleteDTO.getDataSource())
.eq(ExtAxProcessAdmin::getIsDelete, TableIsDeleteEnum.NORMAL.value);
}
LambdaQueryWrapper<ExtAxProcessAdmin> buildQueryWrapper(ExtAxProcessAdmin processAdmin) {
return new LambdaQueryWrapper<ExtAxProcessAdmin>()

View File

@ -0,0 +1,56 @@
package cn.axzo.workflow.common.model.request.admin;
import cn.axzo.workflow.common.enums.AdminDataSource;
import cn.axzo.workflow.common.enums.AdminTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@ApiModel("删除管理员模型")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProcessAdminDeleteDTO {
/**
* 流程管理员配置id列表
*/
@ApiModelProperty(value = "流程管理员配置id列表")
private List<Long> processAdminIds;
/**
* 自然人id
*/
@ApiModelProperty(value = "自然人id列表")
private List<Long> personIds;
/**
* 工作台ID
*/
@ApiModelProperty(value = "工作台id")
private Long workspaceId;
/**
* 单位id
*/
@ApiModelProperty(value = "单位id")
private Long organizationalUnitId;
/**
* 数据来源, system-系统录入, user-用户手动录入
*/
@ApiModelProperty(value = "数据来源")
private AdminDataSource dataSource;
/**
* 管理员类型
*/
@ApiModelProperty(value = "管理员类型")
private AdminTypeEnum adminType;
}

View File

@ -5,6 +5,7 @@ import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
import cn.axzo.workflow.admin.service.ExtAxProcessAdminService;
import cn.axzo.workflow.client.feign.manage.ProcessAdminApi;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminCreateDTO;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminDeleteDTO;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminQueryDTO;
import cn.axzo.workflow.common.model.response.admin.ProcessAdminVo;
import cn.axzo.workflow.server.common.annotation.ErrorReporter;
@ -59,6 +60,7 @@ public class ProcessAdminController implements ProcessAdminApi {
}
@Override
@PostMapping("/query/count")
public CommonResponse<Integer> queryProcessAdminsCount(ProcessAdminQueryDTO dto) {
return CommonResponse.success(extAxProcessAdminService.queryCount(dto));
}
@ -104,6 +106,13 @@ public class ProcessAdminController implements ProcessAdminApi {
return CommonResponse.success();
}
@DeleteMapping("/delete/criteria")
@Override
public CommonResponse<Void> deleteProcessAdminCriteria(@RequestBody ProcessAdminDeleteDTO dto) {
extAxProcessAdminService.delete(dto);
return CommonResponse.success();
}
@DeleteMapping("/batch/delete")
@Override
public CommonResponse<Void> batchDeleteProcessAdmin(@RequestBody List<Long> ids) {

View File

@ -83,6 +83,7 @@ import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelDetailVO;
import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelExtVO;
import cn.axzo.workflow.common.model.request.bpmn.RestBpmnProcessVariable;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminCreateDTO;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminDeleteDTO;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminQueryDTO;
import cn.axzo.workflow.common.model.response.admin.ProcessAdminVo;
@ -799,6 +800,15 @@ public interface WorkflowManageService {
@InvokeMode(SYNC)
Void deleteCommonProcessAdmin(@RequestParam Long id);
/**
* 根据条件删除管理员
* @param dto 删除条件
* @return
*/
@DeleteMapping("/api/process/admin/delete/criteria")
@InvokeMode(SYNC)
Void deleteProcessAdminCriteria(@RequestParam ProcessAdminDeleteDTO dto);
/**
* 删除管理员
* @param ids 管理员配置id列表