From f773ebaa0ae6ff6d0ee94fb03bffb9903c5f14aa Mon Sep 17 00:00:00 2001 From: liuyang Date: Tue, 10 Dec 2024 16:27:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:[REQ-3282]=20=E7=BC=96=E5=86=99rpc?= =?UTF-8?q?=E8=B0=83=E7=94=A8demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orgmanax/common/config/BizResultCode.java | 16 +++++-- .../apollo/ApolloGroupTaskOrderClient.java | 18 ++++++++ ...rojectTeamWorkerIsFinishGroupTaskResp.java | 28 ++++++++++++ orgmanax-integration/pom.xml | 5 +++ .../ApolloGroupTaskOrderClientImpl.java | 28 ++++++++++++ .../orgmanax/integration/core/RpcUtils.java | 44 +++++++++++++++++++ .../java/cn/axzo/orgmanax/Application.java | 3 ++ .../java/cn/axzo/orgmanax/DevApplication.java | 2 + 8 files changed, 141 insertions(+), 3 deletions(-) create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/apollo/ApolloGroupTaskOrderClient.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/apollo/dto/CheckProjectTeamWorkerIsFinishGroupTaskResp.java create mode 100644 orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/apollo/ApolloGroupTaskOrderClientImpl.java create mode 100644 orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/core/RpcUtils.java diff --git a/orgmanax-common/src/main/java/cn/axzo/orgmanax/common/config/BizResultCode.java b/orgmanax-common/src/main/java/cn/axzo/orgmanax/common/config/BizResultCode.java index eb22835..c98714d 100644 --- a/orgmanax-common/src/main/java/cn/axzo/orgmanax/common/config/BizResultCode.java +++ b/orgmanax-common/src/main/java/cn/axzo/orgmanax/common/config/BizResultCode.java @@ -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; + } diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/apollo/ApolloGroupTaskOrderClient.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/apollo/ApolloGroupTaskOrderClient.java new file mode 100644 index 0000000..97957ae --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/apollo/ApolloGroupTaskOrderClient.java @@ -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 checkProjectTeamWorkerIsFinishGroupTask(Long projectTeamId, List workerIds); + +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/apollo/dto/CheckProjectTeamWorkerIsFinishGroupTaskResp.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/apollo/dto/CheckProjectTeamWorkerIsFinishGroupTaskResp.java new file mode 100644 index 0000000..77de675 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/apollo/dto/CheckProjectTeamWorkerIsFinishGroupTaskResp.java @@ -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; + +} diff --git a/orgmanax-integration/pom.xml b/orgmanax-integration/pom.xml index 32b4d4b..986c6a1 100644 --- a/orgmanax-integration/pom.xml +++ b/orgmanax-integration/pom.xml @@ -18,6 +18,11 @@ apollo-api ${project.version} + + cn.axzo.orgmanax + orgmanax-server + ${revision} + \ No newline at end of file diff --git a/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/apollo/ApolloGroupTaskOrderClientImpl.java b/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/apollo/ApolloGroupTaskOrderClientImpl.java new file mode 100644 index 0000000..3c0ab8f --- /dev/null +++ b/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/apollo/ApolloGroupTaskOrderClientImpl.java @@ -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 checkProjectTeamWorkerIsFinishGroupTask(Long projectTeamId, List workerIds) { + List result = RpcUtils.getResult(groupTaskOrderApi.checkProjectTeamWorkerIsFinishGroupTask(projectTeamId, workerIds)); + return BeanUtil.copyToList(result, CheckProjectTeamWorkerIsFinishGroupTaskResp.class); + } +} diff --git a/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/core/RpcUtils.java b/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/core/RpcUtils.java new file mode 100644 index 0000000..8b39d47 --- /dev/null +++ b/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/core/RpcUtils.java @@ -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 getResult(CommonResponse result) { + return getResult(result, true); + } + + public static T getResult(CommonResponse 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 getResult(cn.axzo.apollo.core.web.Result 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(); + } +} diff --git a/orgmanax-starter/src/main/java/cn/axzo/orgmanax/Application.java b/orgmanax-starter/src/main/java/cn/axzo/orgmanax/Application.java index 0bffb88..4fd9265 100644 --- a/orgmanax-starter/src/main/java/cn/axzo/orgmanax/Application.java +++ b/orgmanax-starter/src/main/java/cn/axzo/orgmanax/Application.java @@ -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 { diff --git a/orgmanax-starter/src/main/java/cn/axzo/orgmanax/DevApplication.java b/orgmanax-starter/src/main/java/cn/axzo/orgmanax/DevApplication.java index 5250303..976e983 100644 --- a/orgmanax-starter/src/main/java/cn/axzo/orgmanax/DevApplication.java +++ b/orgmanax-starter/src/main/java/cn/axzo/orgmanax/DevApplication.java @@ -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 {