REQ-2752-新增根据条件删除流程管理员接口
This commit is contained in:
parent
165e9f65b7
commit
47cc2d4bd0
@ -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);
|
||||
|
||||
/**
|
||||
* 删除管理员
|
||||
|
||||
@ -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);
|
||||
|
||||
/**
|
||||
* 批量删除管理员
|
||||
|
||||
@ -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>()
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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) {
|
||||
|
||||
@ -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列表
|
||||
|
||||
Loading…
Reference in New Issue
Block a user