From af27f5c52fa1ecafd9388cc9adaad15f7ed6769a Mon Sep 17 00:00:00 2001 From: liuyang Date: Tue, 10 Dec 2024 18:04:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:[REQ-3282]=20=E6=9A=82=E6=97=B6=E6=8F=90?= =?UTF-8?q?=E4=BA=A4,=20=E6=96=B0=E5=A2=9EElise=E7=9B=B8=E5=85=B3=E4=BA=8C?= =?UTF-8?q?=E6=96=B9SDK=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infra/client/elise/EliseDeviceClient.java | 13 ++++ .../infra/client/elise/EliseStatesClient.java | 29 +++++++++ .../elise/dto/EliseGetPersonFilingsResp.java | 60 +++++++++++++++++++ .../elise/dto/EliseGetWhetherPushReq.java | 35 +++++++++++ .../elise/dto/EliseGetWhetherPushResp.java | 22 +++++++ .../elise/dto/EliseListUserStateReq.java | 25 ++++++++ .../elise/dto/EliseListUserStateResp.java | 43 +++++++++++++ .../sdk/elise/EliseDeviceClientImpl.java | 20 +++++++ .../sdk/elise/EliseStatesClientImpl.java | 47 +++++++++++++++ 9 files changed, 294 insertions(+) create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/EliseDeviceClient.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/EliseStatesClient.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetPersonFilingsResp.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetWhetherPushReq.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetWhetherPushResp.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseListUserStateReq.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseListUserStateResp.java create mode 100644 orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/sdk/elise/EliseDeviceClientImpl.java create mode 100644 orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/sdk/elise/EliseStatesClientImpl.java diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/EliseDeviceClient.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/EliseDeviceClient.java new file mode 100644 index 0000000..18feddd --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/EliseDeviceClient.java @@ -0,0 +1,13 @@ +package cn.axzo.orgmanax.infra.client.elise; + +import org.springframework.web.bind.annotation.RequestBody; + +public interface EliseDeviceClient { + + /** + * 通过项目ID获取备案设备数量 + * @param projectId + * @return + */ + Integer getSnCountByProjectId(Long projectId); +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/EliseStatesClient.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/EliseStatesClient.java new file mode 100644 index 0000000..6bb6386 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/EliseStatesClient.java @@ -0,0 +1,29 @@ +package cn.axzo.orgmanax.infra.client.elise; + +import cn.axzo.orgmanax.infra.client.elise.dto.*; + +import java.util.List; + +public interface EliseStatesClient { + + /** + * 查询用户备案信息 + * @param req + * @return + */ + List listUserState(EliseListUserStateReq req); + + /** + * 查询 项目是否绑定成都住建&用户备案信息 + * @param req + * @return + */ + EliseGetPersonFilingsResp getPersonFilings(EliseListUserStateReq req); + + /** + * 查询用户是否需要推送监管(下一版废弃,工人进入项目就推送不依赖动态花名册,所以也无需业务侧查询用户是否需要推送,如果补偿推送由elise统一管理) + * @return + */ + EliseGetWhetherPushResp getWhetherPush(EliseGetWhetherPushReq req); + +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetPersonFilingsResp.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetPersonFilingsResp.java new file mode 100644 index 0000000..c66b70e --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetPersonFilingsResp.java @@ -0,0 +1,60 @@ +package cn.axzo.orgmanax.infra.client.elise.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class EliseGetPersonFilingsResp { + + + /** + * 是否绑定成都住建 + */ + private boolean bindCdzj; + + /** + * 备案信息 + */ + private List filingsInfos; + + @Data + public static class PersonRegisterInfoResp { + + /** + * axzoId + */ + private Long axzoId; + /** + * 下发时间 + */ + private Long issueAt; + /** + * 项目ID + */ + private Long projectId; + /** + * 原因 + */ + private String reason; + /** + * 原因 + */ + private String sourceReason; + /** + * 0-未备案 1-已备案 + */ + private Integer state; + /** + * 上传时间 + */ + private Long uploadAt; + + + /** + * 最新一次人员备案成功时间 + */ + private Long uploadSuccessKeepOnRecordTime; + + } +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetWhetherPushReq.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetWhetherPushReq.java new file mode 100644 index 0000000..57428c9 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetWhetherPushReq.java @@ -0,0 +1,35 @@ +package cn.axzo.orgmanax.infra.client.elise.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +@Data +public class EliseGetWhetherPushReq { + + /** + * 项目部ID + */ + @NotNull(message = "workspaceId is null") + Long workspaceId; + + /** + * personId/acctId + */ + @NotNull(message = "personId is null") + Long personId; + + /** + * 入场时间(状态变为在场的时间) + */ + @NotNull(message = "joinAt is null") + Date joinAt; + + /** + * 用户类型 1工人 2从业人员 + */ + @NotNull(message = "userType is null") + Integer userType; + +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetWhetherPushResp.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetWhetherPushResp.java new file mode 100644 index 0000000..f259961 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseGetWhetherPushResp.java @@ -0,0 +1,22 @@ +package cn.axzo.orgmanax.infra.client.elise.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +@Data +public class EliseGetWhetherPushResp { + + /** + * personId + */ + private Long personId; + + /** + * 是否需要推送: true 需要 false 不需要 + */ + private Boolean whetherPus; + + +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseListUserStateReq.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseListUserStateReq.java new file mode 100644 index 0000000..89287e7 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseListUserStateReq.java @@ -0,0 +1,25 @@ +package cn.axzo.orgmanax.infra.client.elise.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class EliseListUserStateReq { + + /** + * 项目部ID(很久以前的老字段定义已经转换为项目部ID) + */ + Long projectId; + + /** + * axzoId + */ + List axzoId; + + /** + * 用户类型 1工人 2从业人员 + */ + Integer userType; + +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseListUserStateResp.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseListUserStateResp.java new file mode 100644 index 0000000..cc1e9cd --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/elise/dto/EliseListUserStateResp.java @@ -0,0 +1,43 @@ +package cn.axzo.orgmanax.infra.client.elise.dto; + +import lombok.Data; + +@Data +public class EliseListUserStateResp { + + /** + * axzoId + */ + private Long axzoId; + /** + * 下发时间 + */ + private Long issueAt; + /** + * 项目ID + */ + private Long projectId; + /** + * 原因 + */ + private String reason; + /** + * 原因 + */ + private String sourceReason; + /** + * 0-未备案 1-已备案 + */ + private Integer state; + /** + * 上传时间 + */ + private Long uploadAt; + + + /** + * 最新一次人员备案成功时间 + */ + private Long uploadSuccessKeepOnRecordTime; + +} diff --git a/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/sdk/elise/EliseDeviceClientImpl.java b/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/sdk/elise/EliseDeviceClientImpl.java new file mode 100644 index 0000000..d360d4a --- /dev/null +++ b/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/sdk/elise/EliseDeviceClientImpl.java @@ -0,0 +1,20 @@ +package cn.axzo.orgmanax.integration.sdk.elise; + +import cn.axzo.elise.cdzj.api.EliseDeviceApi; +import cn.axzo.orgmanax.infra.client.elise.EliseDeviceClient; +import cn.axzo.orgmanax.integration.core.RpcWrapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +@RequiredArgsConstructor +@Component +public class EliseDeviceClientImpl implements EliseDeviceClient { + + private final EliseDeviceApi eliseDeviceApi; + + @Override + public Integer getSnCountByProjectId(Long projectId) { + return RpcWrapper.commonRes(() -> eliseDeviceApi.getSnCountByProjectId(projectId)); + } + +} diff --git a/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/sdk/elise/EliseStatesClientImpl.java b/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/sdk/elise/EliseStatesClientImpl.java new file mode 100644 index 0000000..abc9650 --- /dev/null +++ b/orgmanax-integration/src/main/java/cn/axzo/orgmanax/integration/sdk/elise/EliseStatesClientImpl.java @@ -0,0 +1,47 @@ +package cn.axzo.orgmanax.integration.sdk.elise; + +import cn.axzo.elise.cdzj.api.EliseDeviceApi; +import cn.axzo.elise.cdzj.api.EliseStatesApi; +import cn.axzo.elise.cdzj.entity.request.GetWhetherPushReq; +import cn.axzo.elise.cdzj.entity.request.PersonRegisterInfoReq; +import cn.axzo.elise.cdzj.entity.response.GetWhetherPushRes; +import cn.axzo.elise.cdzj.entity.response.PersonFilingsResp; +import cn.axzo.elise.cdzj.entity.response.PersonRegisterInfoResp; +import cn.axzo.orgmanax.infra.client.elise.EliseDeviceClient; +import cn.axzo.orgmanax.infra.client.elise.EliseStatesClient; +import cn.axzo.orgmanax.infra.client.elise.dto.*; +import cn.axzo.orgmanax.integration.core.RpcWrapper; +import cn.hutool.core.bean.BeanUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.List; + +@RequiredArgsConstructor +@Component +public class EliseStatesClientImpl implements EliseStatesClient { + + private final EliseStatesApi eliseStatesApi; + + + @Override + public List listUserState(EliseListUserStateReq req) { + PersonRegisterInfoReq rpcReq = BeanUtil.copyProperties(req, PersonRegisterInfoReq.class); + List list = RpcWrapper.commonRes(() -> eliseStatesApi.listUserState(rpcReq)); + return BeanUtil.copyToList(list, EliseListUserStateResp.class); + } + + @Override + public EliseGetPersonFilingsResp getPersonFilings(EliseListUserStateReq req) { + PersonRegisterInfoReq rpcReq = BeanUtil.copyProperties(req, PersonRegisterInfoReq.class); + PersonFilingsResp resp = RpcWrapper.commonRes(() -> eliseStatesApi.getPersonFilings(rpcReq)); + return BeanUtil.copyProperties(resp, EliseGetPersonFilingsResp.class); + } + + @Override + public EliseGetWhetherPushResp getWhetherPush(EliseGetWhetherPushReq req) { + GetWhetherPushReq rpcReq = BeanUtil.copyProperties(req, GetWhetherPushReq.class); + GetWhetherPushRes resp = RpcWrapper.commonRes(() -> eliseStatesApi.getWhetherPush(rpcReq)); + return BeanUtil.copyProperties(resp, EliseGetWhetherPushResp.class); + } +}