feat:[REQ-3282] 编写rpc调用demo

This commit is contained in:
liuyang 2024-12-10 16:27:35 +08:00
parent c1108dd54a
commit f773ebaa0a
8 changed files with 141 additions and 3 deletions

View File

@ -7,17 +7,27 @@ import lombok.Getter;
@Getter
@AllArgsConstructor
public enum BizResultCode implements IResultCode {
SUCCESS("200", "成功"),
// ~ 100 -> 199 Node相关的错误码
NODE_PROCESS_FAILED("100", "部门操作失败"),
INVALID_PARAM("400", "参数异常"),
ENTITY_NOT_FOUND("404", "实体不存在"),
// 900 ~ 998 二方SDK相关错误码
RPC_ERROR("900", "rpc error"),
DATA_PUMP_ERROR("999", "数据同步错误"),
;
private String errorCode;
private String errorMessage;
/**
* 错误码
*/
private final String errorCode;
/**
* 错误消息
*/
private final String errorMessage;
}

View File

@ -0,0 +1,18 @@
package cn.axzo.orgmanax.infra.client.apollo;
import cn.axzo.orgmanax.infra.client.apollo.dto.CheckProjectTeamWorkerIsFinishGroupTaskResp;
import java.util.List;
/**
* apollo 服务调用
*/
public interface ApolloGroupTaskOrderClient {
/**
* 查询项目内班组下 某一批工人是否有未完成直属小组任务单
* @return 任务单详情
*/
List<CheckProjectTeamWorkerIsFinishGroupTaskResp> checkProjectTeamWorkerIsFinishGroupTask(Long projectTeamId, List<Long> workerIds);
}

View File

@ -0,0 +1,28 @@
package cn.axzo.orgmanax.infra.client.apollo.dto;
import lombok.Data;
/**
* 检查项目内班组下工人是否有未完成的直属小组单
**/
@Data
public class CheckProjectTeamWorkerIsFinishGroupTaskResp {
/**
* 工人id
*/
private Long workerId;
/**
* 是否有未完成的任务单
*/
private Boolean isFinish = false;
/**
* 未完成任务的数量
*/
private Integer unFinishCount=0;
}

View File

@ -18,6 +18,11 @@
<artifactId>apollo-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.orgmanax</groupId>
<artifactId>orgmanax-server</artifactId>
<version>${revision}</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,28 @@
package cn.axzo.orgmanax.integration.apollo;
import cn.axzo.apollo.api.ApolloGroupTaskOrderApi;
import cn.axzo.apollo.api.res.CheckWorkerIsFinishGroupRes;
import cn.axzo.orgmanax.infra.client.apollo.ApolloGroupTaskOrderClient;
import cn.axzo.orgmanax.infra.client.apollo.dto.CheckProjectTeamWorkerIsFinishGroupTaskResp;
import cn.axzo.orgmanax.integration.core.RpcUtils;
import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
@RequiredArgsConstructor
@Component
public class ApolloGroupTaskOrderClientImpl implements ApolloGroupTaskOrderClient {
private final ApolloGroupTaskOrderApi groupTaskOrderApi;
/**
* 查询项目内班组下 某一批工人是否有未完成直属小组任务单
* @return 任务单详情
*/
public List<CheckProjectTeamWorkerIsFinishGroupTaskResp> checkProjectTeamWorkerIsFinishGroupTask(Long projectTeamId, List<Long> workerIds) {
List<CheckWorkerIsFinishGroupRes> result = RpcUtils.getResult(groupTaskOrderApi.checkProjectTeamWorkerIsFinishGroupTask(projectTeamId, workerIds));
return BeanUtil.copyToList(result, CheckProjectTeamWorkerIsFinishGroupTaskResp.class);
}
}

View File

@ -0,0 +1,44 @@
package cn.axzo.orgmanax.integration.core;
import cn.axzo.foundation.exception.BusinessException;
import cn.axzo.framework.domain.web.BizException;
import cn.axzo.framework.domain.web.result.ApiListResult;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.orgmanax.common.config.BizResultCode;
import cn.azxo.framework.common.model.CommonResponse;
import cn.hutool.core.convert.Convert;
import java.util.List;
import java.util.Objects;
/**
* rpc调用结果封装
*/
public class RpcUtils {
public static <T> T getResult(CommonResponse<T> result) {
return getResult(result, true);
}
public static <T> T getResult(CommonResponse<T> result, Boolean throwException) {
if (result == null) {
throw new BusinessException(BizResultCode.RPC_ERROR);
}
if (!Objects.equals(Convert.toStr(result.getCode()), BizResultCode.SUCCESS.getErrorCode()) && Boolean.TRUE.equals(throwException)) {
throw new BusinessException(Convert.toStr(result.getCode(), null), result.getMsg(), null);
}
return result.getData();
}
public static <T> T getResult(cn.axzo.apollo.core.web.Result<T> result) {
if (result == null) {
throw new BusinessException(BizResultCode.RPC_ERROR);
}
if (!Objects.equals(Convert.toStr(result.getCode()), BizResultCode.SUCCESS.getErrorCode())) {
throw new BusinessException(Convert.toStr(result.getCode()), result.getMsg(), null);
}
return result.getData();
}
}

View File

@ -3,6 +3,7 @@ package cn.axzo.orgmanax;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
@ -10,6 +11,8 @@ import org.springframework.core.env.Environment;
* @author tanjie@axzo.cn
* @date 2024/11/28 15:54
*/
@EnableFeignClients(value = {"cn.axzo"})
@SpringBootApplication(scanBasePackages = Application.DEFAULT_DIR)
@Slf4j
public class Application {

View File

@ -3,6 +3,7 @@ package cn.axzo.orgmanax;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
@ -10,6 +11,7 @@ import org.springframework.core.env.Environment;
* @author tanjie@axzo.cn
* @date 2024/11/28 15:54
*/
@EnableFeignClients(value = {"cn.axzo"})
@SpringBootApplication(scanBasePackages = DevApplication.DEFAULT_DIR)
@Slf4j
public class DevApplication {