REQ-2752-增加流程管理员数量校验,修复管理员查询数据问题

This commit is contained in:
yangqicheng 2024-10-11 11:53:49 +08:00
parent 3e464bf108
commit ce627a6bc8
4 changed files with 31 additions and 14 deletions

View File

@ -14,6 +14,12 @@ public interface ExtAxProcessAdminService {
*/
Long insert(ExtAxProcessAdmin processAdmin);
/**
* 批量新增
* @param processAdmins 配置管理员列表
*/
void batchInsert(List<ExtAxProcessAdmin> processAdmins);
/**
* 根据条件查询
* @param queryDTO
@ -21,12 +27,6 @@ public interface ExtAxProcessAdminService {
*/
List<ExtAxProcessAdmin> query(ProcessAdminQueryDTO queryDTO);
/**
* 批量新增
* @param processAdmins 配置管理员列表
*/
void batchInsert(List<ExtAxProcessAdmin> processAdmins);
/**
* 根据条件删除管理员配置
* @param processAdmin 删除条件

View File

@ -29,6 +29,14 @@ public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
return processAdmin.getId();
}
@Override
public void batchInsert(List<ExtAxProcessAdmin> processAdmins) {
if (CollectionUtils.isEmpty(processAdmins)) {
return;
}
processAdmins.forEach(this::insert);
}
@Override
public List<ExtAxProcessAdmin> query(ProcessAdminQueryDTO queryDTO) {
if (queryDTO == null) {
@ -40,17 +48,10 @@ public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
.eq(Objects.nonNull(queryDTO.getOrganizationalUnitId()), ExtAxProcessAdmin::getOrganizationalUnitId, queryDTO.getOrganizationalUnitId())
.eq(!CollectionUtils.isEmpty(queryDTO.getPersonIds()), ExtAxProcessAdmin::getPersonId, queryDTO.getPersonIds())
.eq(Objects.nonNull(queryDTO.getDataSource()), ExtAxProcessAdmin::getDataSource, queryDTO.getDataSource())
.eq(ExtAxProcessAdmin::getIsDelete, TableIsDeleteEnum.NORMAL);
.eq(ExtAxProcessAdmin::getIsDelete, TableIsDeleteEnum.NORMAL.value);
return extAxProcessAdminMapper.selectList(queryWrapper);
}
public void batchInsert(List<ExtAxProcessAdmin> processAdmins) {
if (CollectionUtils.isEmpty(processAdmins)) {
return;
}
processAdmins.forEach(this::insert);
}
@Override
public void delete(ExtAxProcessAdmin processAdmin) {
if (processAdmin == null) {

View File

@ -194,4 +194,9 @@ public interface BpmnConstants {
* 固定父子文档在相同分片
*/
String ES_FIXED_ROUTING = "routing";
/**
* ouId+workspaceId 下限制人员数量为20
*/
Integer MAX_ORG_WORKSPACE_ADMIN_COUNT = 20;
}

View File

@ -1,5 +1,6 @@
package cn.axzo.workflow.server.controller.web.manage;
import cn.axzo.framework.domain.ServiceException;
import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
import cn.axzo.workflow.admin.service.ExtAxProcessAdminService;
import cn.axzo.workflow.client.feign.manage.ProcessAdminApi;
@ -24,6 +25,8 @@ import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import static cn.axzo.workflow.common.constant.BpmnConstants.MAX_ORG_WORKSPACE_ADMIN_COUNT;
/**
* 流程管理员控制器
*/
@ -58,6 +61,14 @@ public class ProcessAdminController implements ProcessAdminApi {
@PostMapping("/create")
@Override
public CommonResponse<Long> createProcessAdmin(@RequestBody ProcessAdminCreateDTO dto) {
List<ExtAxProcessAdmin> extAxProcessAdmins = extAxProcessAdminService.query(ProcessAdminQueryDTO
.builder()
.organizationalUnitId(dto.getOrganizationalUnitId())
.workspaceId(dto.getWorkspaceId())
.build());
if (!CollectionUtils.isEmpty(extAxProcessAdmins) && extAxProcessAdmins.size() > MAX_ORG_WORKSPACE_ADMIN_COUNT) {
throw new ServiceException(String.format("管理员最多不超过%d人", MAX_ORG_WORKSPACE_ADMIN_COUNT));
}
ExtAxProcessAdmin processAdmin = new ExtAxProcessAdmin();
BeanUtils.copyProperties(dto, processAdmin);
Long id = extAxProcessAdminService.insert(processAdmin);