feat:[REQ-3282] 编写rpc调用demo
This commit is contained in:
parent
c1108dd54a
commit
f773ebaa0a
@ -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;
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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>
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
@ -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 {
|
||||
|
||||
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user