REQ-2752-审批管理员相关功能接口实现

This commit is contained in:
yangqicheng 2024-09-27 18:03:43 +08:00
parent 3f1c4ac868
commit bcce548998
12 changed files with 337 additions and 0 deletions

View File

@ -0,0 +1,27 @@
package cn.axzo.workflow.client.feign.manage;
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
import cn.axzo.workflow.common.model.request.admin.ProcessAdminCreateDTO;
import cn.azxo.framework.common.model.CommonResponse;
import org.springframework.cloud.openfeign.FeignClient;
import java.util.List;
@FeignClient(name = "workflow-engine", url = "${axzo.service.workflow-engine:http://workflow-engine:8080}", configuration = CommonFeignConfiguration.class)
public interface ProcessAdminApi {
/**
* 添加管理员
* @param dto 管理员数据
* @return 管理员id
*/
CommonResponse<Long> createProcessAdmin(ProcessAdminCreateDTO dto);
/**
* 批量添加管理员
* @param dtos
* @return
*/
CommonResponse<Void> createProcessAdminBatch(List<ProcessAdminCreateDTO> dtos);
}

View File

@ -15,5 +15,24 @@
<groupId>cn.axzo.workflow</groupId>
<artifactId>workflow-engine-common</artifactId>
</dependency>
<dependency>
<groupId>cn.axzo.basics</groupId>
<artifactId>basics-common</artifactId>
</dependency>
<dependency>
<groupId>cn.axzo.framework</groupId>
<artifactId>axzo-processor-spring-boot-starter</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>cn.axzo.framework</groupId>
<artifactId>axzo-mybatisplus-spring-boot-starter</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,65 @@
package cn.axzo.workflow.admin.repository.entity;
import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
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 com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ext_ax_process_admin", autoResultMap = true)
@Data
@ToString(callSuper = true)
public class ExtAxProcessAdmin extends BaseEntity<ExtAxProcessAdmin> {
private static final long serialVersionUID = 7342715107163876733L;
/**
* 自然人id
*/
private Integer personId;
/**
* 单位id
*/
private Integer organizationalUnitId;
/**
* 工作台ID
*/
private Integer workspaceId;
/**
* 工作台类型1-企业, 2-项目, 3-政务监管平台, 6-oms工作台,参考 WorkspaceType枚举
*/
private WorkspaceType workspaceType;
/**
* 管理员类型, super_admin-超级管理员, common_admin-普通管理员
*/
private AdminTypeEnum adminType;
/**
* 角色类型, organization_admin-单位超管, organization_worksapce_admin-项目内单位负责人, workspace_admin-项目超管other-其他用户
*/
private AdminRoleType roleType;
/**
* 数据来源, system-系统录入, user-用户手动录入
*/
private AdminDataSource dataSource;
/**
* 创建者
*/
private Long createBy;
/**
* 更新者
*/
private Long updateBy;
}

View File

@ -0,0 +1,9 @@
package cn.axzo.workflow.admin.repository.mapper;
import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ExtAxProcessAdminMapper extends BaseMapper<ExtAxProcessAdmin> {
}

View File

@ -0,0 +1,21 @@
package cn.axzo.workflow.admin.service;
import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
import java.util.List;
public interface ExtAxProcessAdminService {
/**
* 新增管理员
* @param processAdmin 流程配置管理员
* @return id
*/
Long insert(ExtAxProcessAdmin processAdmin);
/**
* 批量新增
* @param processAdmins 配置管理员列表
*/
void batchInsert(List<ExtAxProcessAdmin> processAdmins);
}

View File

@ -0,0 +1,28 @@
package cn.axzo.workflow.admin.service.impl;
import cn.axzo.workflow.admin.repository.entity.ExtAxProcessAdmin;
import cn.axzo.workflow.admin.repository.mapper.ExtAxProcessAdminMapper;
import cn.axzo.workflow.admin.service.ExtAxProcessAdminService;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.List;
public class ExtAxProcessAdminServiceImpl implements ExtAxProcessAdminService {
@Resource
private ExtAxProcessAdminMapper extAxProcessAdminMapper;
@Override
public Long insert(ExtAxProcessAdmin processAdmin) {
extAxProcessAdminMapper.insert(processAdmin);
return processAdmin.getId();
}
public void batchInsert(List<ExtAxProcessAdmin> processAdmins) {
if(CollectionUtils.isEmpty(processAdmins)){
return;
}
processAdmins.forEach(this::insert);
}
}

View File

@ -0,0 +1,17 @@
package cn.axzo.workflow.common.enums;
import lombok.Getter;
@Getter
public enum AdminDataSource {
SYSTEM_ENTRY("systemEntry", "系统录入"),
USER_ENTRY("userEntry", "用户手动录入");
private final String type;
private final String desc;
AdminDataSource(String type, String desc) {
this.type = type;
this.desc = desc;
}
}

View File

@ -0,0 +1,19 @@
package cn.axzo.workflow.common.enums;
import lombok.Getter;
@Getter
public enum AdminRoleType {
ORGANIZATION_ADMIN("organizationAdmin", "单位超管"),
ORG_WORKSPACE_ADMIN("organizationWorkspaceAdmin", "项目内单位负责人"),
WORKSPACE_ADMIN("workspaceAdmin", "项目超管"),
OTHER("other", "其他用户");
private final String type;
private final String desc;
AdminRoleType(String type, String desc) {
this.type = type;
this.desc = desc;
}
}

View File

@ -0,0 +1,20 @@
package cn.axzo.workflow.common.enums;
import lombok.Getter;
/**
* 审批管理员类型
*/
@Getter
public enum AdminTypeEnum {
SUPER_ADMIN("super_admin", "超级管理员"),
COMMON_ADMIN("common_admin", "普通管理员");
private final String type;
private final String desc;
AdminTypeEnum(String type, String desc) {
this.type = type;
this.desc = desc;
}
}

View File

@ -0,0 +1,65 @@
package cn.axzo.workflow.common.model.request.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.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 新增管理员模型
*/
@ApiModel("新增管理员模型")
@Data
public class ProcessAdminCreateDTO {
/**
* 自然人id
*/
@ApiModelProperty(value = "自然人id")
@NotNull(message = "人员不能为空")
private Integer personId;
/**
* 单位id
*/
@ApiModelProperty(value = "单位id")
@NotNull(message = "单位id不能为空")
private Integer organizationalUnitId;
/**
* 工作台ID
*/
@ApiModelProperty(value = "工作台id")
@NotNull(message = "工作台id不能为空")
private Integer workspaceId;
/**
* 工作台类型1-企业, 2-项目, 3-政务监管平台, 6-oms工作台,参考 WorkspaceType枚举
*/
@ApiModelProperty(value = "工作台类型")
@NotNull(message = "工作台类型不能为空")
private WorkspaceType workspaceType;
/**
* 管理员类型, super_admin-超级管理员, common_admin-普通管理员
*/
@ApiModelProperty(value = "管理员类型, super_admin-超级管理员, common_admin-普通管理员")
private AdminTypeEnum adminType;
/**
* 角色类型, organization_admin-单位超管, organization_workspace_admin-项目内单位负责人, workspace_admin-项目超管other-其他用户
*/
@ApiModelProperty(value = "角色类型, organization_admin-单位超管, organization_workspace_admin-项目内单位负责人, workspace_admin-项目超管other-其他用户")
private AdminRoleType roleType;
/**
* 数据来源, system-系统录入, user-用户手动录入
*/
@ApiModelProperty(value = "数据来源, system-系统录入, user-用户手动录入")
private AdminDataSource dataSource;
}

View File

@ -71,6 +71,10 @@
<groupId>${project.groupId}</groupId>
<artifactId>workflow-engine-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>workflow-engine-axzo-ext</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>

View File

@ -0,0 +1,43 @@
package cn.axzo.workflow.server.controller.web.manage;
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.server.common.annotation.ErrorReporter;
import cn.azxo.framework.common.model.CommonResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* 流程管理员控制器
*/
@Slf4j
@RequestMapping({"/web/v1/api/process/admin", "/api/process/admin"})
@RestController
@ErrorReporter
@Validated
public class ProcessAdminController implements ProcessAdminApi {
@Resource
private ExtAxProcessAdminService extAxProcessAdminService;
@Override
public CommonResponse<Long> createProcessAdmin(ProcessAdminCreateDTO dto) {
ExtAxProcessAdmin processAdmin = new ExtAxProcessAdmin();
BeanUtils.copyProperties(dto, processAdmin);
Long id = extAxProcessAdminService.insert(processAdmin);
return CommonResponse.success(id);
}
@Override
public CommonResponse<Void> createProcessAdminBatch(List<ProcessAdminCreateDTO> dtos) {
return null;
}
}