REQ-2752-添加管理员操作相关接口

This commit is contained in:
yangqicheng 2024-10-08 11:37:51 +08:00
parent 42792af2ff
commit aaa00ee566
11 changed files with 792 additions and 540 deletions

View File

@ -1,9 +1,12 @@
package cn.axzo.workflow.client.feign.manage;
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
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.ProcessAdminQueryDTO;
import cn.axzo.workflow.common.model.response.admin.ProcessAdminVo;
import cn.azxo.framework.common.model.CommonResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -11,15 +14,28 @@ import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(name = "workflow-engine", url = "${axzo.service.workflow-engine:http://workflow-engine:8080}", configuration = CommonFeignConfiguration.class)
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
@WorkflowEngineFeignClient
@Manageable
public interface ProcessAdminApi {
/**
* 查询管理员
* @param dto 管理员数据
* @return 管理员id
*/
@PostMapping("/api/process/admin/query")
@InvokeMode(SYNC)
CommonResponse<List<ProcessAdminVo>> queryProcessAdmins(@RequestBody ProcessAdminQueryDTO dto);
/**
* 添加管理员
* @param dto 管理员数据
* @return 管理员id
*/
@PostMapping("/api/process/admin/create")
@InvokeMode(SYNC)
CommonResponse<Long> createProcessAdmin(@RequestBody ProcessAdminCreateDTO dto);
/**
@ -27,8 +43,9 @@ public interface ProcessAdminApi {
* @param dtos
* @return
*/
@PostMapping("/api/process/admin/create")
CommonResponse<Void> createProcessAdminBatch(@RequestBody List<ProcessAdminCreateDTO> dtos);
@PostMapping("/api/process/admin/batch/create")
@InvokeMode(SYNC)
CommonResponse<Void> batchCreateProcessAdmin(@RequestBody List<ProcessAdminCreateDTO> dtos);
/**
* 删除管理员
@ -36,6 +53,16 @@ public interface ProcessAdminApi {
* @return
*/
@DeleteMapping("/api/process/admin/delete")
@InvokeMode(SYNC)
CommonResponse<Void> deleteCommonProcessAdmin(@RequestParam Long id);
/**
* 删除管理员
* @param ids 管理员配置id列表
* @return
*/
@DeleteMapping("/api/process/admin/batch/delete")
@InvokeMode(SYNC)
CommonResponse<Void> batchDeleteProcessAdmin(@RequestParam List<Long> ids);
}

View File

@ -14,6 +14,7 @@
<dependency>
<groupId>cn.axzo.workflow</groupId>
<artifactId>workflow-engine-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.basics</groupId>

View File

@ -21,17 +21,17 @@ public class ExtAxProcessAdmin extends BaseEntity<ExtAxProcessAdmin> {
/**
* 自然人id
*/
private Integer personId;
private Long personId;
/**
* 单位id
*/
private Integer organizationalUnitId;
private Long organizationalUnitId;
/**
* 工作台ID
*/
private Integer workspaceId;
private Long workspaceId;
/**
* 工作台类型1-企业, 2-项目, 3-政务监管平台, 6-oms工作台,参考 WorkspaceType枚举

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.ProcessAdminQueryDTO;
import java.util.List;
@ -13,6 +14,13 @@ public interface ExtAxProcessAdminService {
*/
Long insert(ExtAxProcessAdmin processAdmin);
/**
* 根据条件查询
* @param queryDTO
* @return
*/
List<ExtAxProcessAdmin> query(ProcessAdminQueryDTO queryDTO);
/**
* 批量新增
* @param processAdmins 配置管理员列表
@ -25,12 +33,6 @@ public interface ExtAxProcessAdminService {
*/
void delete(ExtAxProcessAdmin processAdmin);
/**
* 删除普通管理员管理员如果删除数据为超级管理员会抛出异常
* @param processAdmin 管理员实体
*/
void deleteCommonAdmins(ExtAxProcessAdmin processAdmin);
/**
* 批量删除管理员
* @param ids 配置表id列表

View File

@ -1,20 +1,20 @@
package cn.axzo.workflow.admin.service.impl;
import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
import cn.axzo.framework.domain.ServiceException;
import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
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.ProcessAdminQueryDTO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
@ -28,6 +28,20 @@ public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
return processAdmin.getId();
}
@Override
public List<ExtAxProcessAdmin> query(ProcessAdminQueryDTO queryDTO) {
if (queryDTO == null) {
return Collections.emptyList();
}
LambdaQueryWrapper<ExtAxProcessAdmin> queryWrapper = new LambdaQueryWrapper<ExtAxProcessAdmin>()
.in(!CollectionUtils.isEmpty(queryDTO.getProcessAdminIds()), ExtAxProcessAdmin::getId, queryDTO.getProcessAdminIds())
.eq(Objects.nonNull(queryDTO.getWorkspaceId()), ExtAxProcessAdmin::getWorkspaceId, queryDTO.getWorkspaceId())
.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());
return extAxProcessAdminMapper.selectList(queryWrapper);
}
public void batchInsert(List<ExtAxProcessAdmin> processAdmins) {
if (CollectionUtils.isEmpty(processAdmins)) {
return;
@ -43,23 +57,6 @@ public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
extAxProcessAdminMapper.delete(buildQueryWrapper(processAdmin));
}
@Override
public void deleteCommonAdmins(ExtAxProcessAdmin processAdmin) {
List<ExtAxProcessAdmin> extAxProcessAdmins = extAxProcessAdminMapper.selectList(buildQueryWrapper(processAdmin));
if (CollectionUtils.isEmpty(extAxProcessAdmins)) {
return;
}
validateDeleteCommonAdmins(extAxProcessAdmins);
List<Long> adminIds = extAxProcessAdmins.stream()
.map(BaseEntity::getId)
.distinct()
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(adminIds)) {
return;
}
extAxProcessAdminMapper.deleteBatchIds(adminIds);
}
@Override
public void deleteCommonAdminsByIds(List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) {

View File

@ -62,4 +62,16 @@ public class ProcessAdminCreateDTO {
*/
@ApiModelProperty(value = "数据来源, system-系统录入, user-用户手动录入")
private AdminDataSource dataSource;
/**
* 创建者
*/
@ApiModelProperty(value = "创建者")
private Long createBy;
/**
* 更新者
*/
@ApiModelProperty(value = "更新者")
private Long updateBy;
}

View File

@ -0,0 +1,52 @@
package cn.axzo.workflow.common.model.request.admin;
import cn.axzo.workflow.common.enums.AdminDataSource;
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 ProcessAdminQueryDTO {
/**
* 流程管理员配置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;
}

View File

@ -0,0 +1,72 @@
package cn.axzo.workflow.common.model.response.admin;
import cn.axzo.workflow.common.enums.AdminDataSource;
import cn.axzo.workflow.common.enums.AdminRoleType;
import cn.axzo.workflow.common.enums.AdminTypeEnum;
import cn.axzo.workflow.common.enums.WorkspaceType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ProcessAdminVo {
/**
* 管理员配置id
*/
@ApiModelProperty("管理员配置id")
private Long processAdminId;
/**
* 自然人id
*/
@ApiModelProperty("自然人id")
private Long personId;
/**
* 单位id
*/
@ApiModelProperty("单位id")
private Long organizationalUnitId;
/**
* 工作台ID
*/
@ApiModelProperty("工作台ID")
private Long workspaceId;
/**
* 工作台类型1-企业, 2-项目, 3-政务监管平台, 6-oms工作台,参考 WorkspaceType枚举
*/
@ApiModelProperty("工作台ID")
private WorkspaceType workspaceType;
/**
* 管理员类型, super_admin-超级管理员, common_admin-普通管理员
*/
@ApiModelProperty("管理员类型")
private AdminTypeEnum adminType;
/**
* 角色类型, organization_admin-单位超管, organization_worksapce_admin-项目内单位负责人, workspace_admin-项目超管other-其他用户
*/
@ApiModelProperty("角色类型")
private AdminRoleType roleType;
/**
* 数据来源, system-系统录入, user-用户手动录入
*/
@ApiModelProperty("数据来源")
private AdminDataSource dataSource;
/**
* 创建者
*/
@ApiModelProperty("创建者")
private Long createBy;
/**
* 更新者
*/
@ApiModelProperty("更新者")
private Long updateBy;
}

View File

@ -11,7 +11,7 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@MapperScan({"cn.axzo.workflow.core.**.mapper"})
@MapperScan({"cn.axzo.workflow.core.**.mapper", "cn.axzo.workflow.admin.**.mapper"})
@ComponentScan({"cn.axzo.workflow"})
@EnableFeignClients("cn.axzo.oss")
@SpringBootApplication(exclude = RabbitAutoConfiguration.class)

View File

@ -4,10 +4,13 @@ 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.ProcessAdminQueryDTO;
import cn.axzo.workflow.common.model.response.admin.ProcessAdminVo;
import cn.axzo.workflow.server.common.annotation.ErrorReporter;
import cn.azxo.framework.common.model.CommonResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -15,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* 流程管理员控制器
@ -29,6 +33,23 @@ public class ProcessAdminController implements ProcessAdminApi {
@Resource
private ExtAxProcessAdminService extAxProcessAdminService;
@Override
public CommonResponse<List<ProcessAdminVo>> queryProcessAdmins(ProcessAdminQueryDTO dto) {
List<ExtAxProcessAdmin> extAxProcessAdmins = extAxProcessAdminService.query(dto);
if (CollectionUtils.isEmpty(extAxProcessAdmins)) {
return CommonResponse.success();
}
List<ProcessAdminVo> adminVos = extAxProcessAdmins.stream()
.map(ad -> {
ProcessAdminVo vo = new ProcessAdminVo();
vo.setProcessAdminId(ad.getId());
BeanUtils.copyProperties(ad, vo);
return vo;
})
.collect(Collectors.toList());
return CommonResponse.success(adminVos);
}
@Override
public CommonResponse<Long> createProcessAdmin(ProcessAdminCreateDTO dto) {
ExtAxProcessAdmin processAdmin = new ExtAxProcessAdmin();
@ -38,8 +59,19 @@ public class ProcessAdminController implements ProcessAdminApi {
}
@Override
public CommonResponse<Void> createProcessAdminBatch(List<ProcessAdminCreateDTO> dtos) {
return null;
public CommonResponse<Void> batchCreateProcessAdmin(List<ProcessAdminCreateDTO> dtos) {
if (CollectionUtils.isEmpty(dtos)) {
return CommonResponse.success();
}
List<ExtAxProcessAdmin> extAxProcessAdmins = dtos.stream()
.map(d -> {
ExtAxProcessAdmin processAdmin = new ExtAxProcessAdmin();
BeanUtils.copyProperties(d, processAdmin);
return processAdmin;
})
.collect(Collectors.toList());
extAxProcessAdminService.batchInsert(extAxProcessAdmins);
return CommonResponse.success();
}
@Override
@ -47,4 +79,13 @@ public class ProcessAdminController implements ProcessAdminApi {
extAxProcessAdminService.deleteCommonAdminsByIds(Collections.singletonList(id));
return CommonResponse.success();
}
@Override
public CommonResponse<Void> batchDeleteProcessAdmin(List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) {
return CommonResponse.success();
}
extAxProcessAdminService.deleteCommonAdminsByIds(ids);
return CommonResponse.success();
}
}