From 4f89fa5d5cdd9bf790530b02bca176c113d3d95f Mon Sep 17 00:00:00 2001 From: zhangyuan Date: Wed, 3 Aug 2022 10:33:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=B8=8B=E5=8F=91=E5=8D=A1?= =?UTF-8?q?=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/visit/form/DhCardPageFormDTO.java | 29 ++++ ...FormDTO.java => DhChannelPageFormDTO.java} | 2 +- .../visit/form/DhPersonCardListFormDTO.java | 22 +++ ...tFormDTO.java => DhPersonPageFormDTO.java} | 3 +- .../dto/visit/form/DhPlanPageFormDTO.java | 25 +++ .../pli-power-base-server/pom.xml | 2 +- .../modules/visit/utils/DhDeviceUtil.java | 152 +++++++++++++----- 7 files changed, 188 insertions(+), 47 deletions(-) create mode 100644 epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhCardPageFormDTO.java rename epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/{DhChannelFormDTO.java => DhChannelPageFormDTO.java} (84%) create mode 100644 epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonCardListFormDTO.java rename epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/{DhPersonListFormDTO.java => DhPersonPageFormDTO.java} (85%) create mode 100644 epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPlanPageFormDTO.java diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhCardPageFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhCardPageFormDTO.java new file mode 100644 index 0000000..b72df21 --- /dev/null +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhCardPageFormDTO.java @@ -0,0 +1,29 @@ +package com.epmet.plugin.power.dto.visit.form; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * 海康社区人员信息下放 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-20 + */ +@Data +public class DhCardPageFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer pageNum; + + private Integer pageSize; + + private String personCode; + + private String cardNumber; + + private String cardStatus; + +} \ No newline at end of file diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhChannelFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhChannelPageFormDTO.java similarity index 84% rename from epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhChannelFormDTO.java rename to epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhChannelPageFormDTO.java index 7ab1b72..e69f387 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhChannelFormDTO.java +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhChannelPageFormDTO.java @@ -12,7 +12,7 @@ import java.io.Serializable; * @since v1.0.0 2022-05-20 */ @Data -public class DhChannelFormDTO implements Serializable { +public class DhChannelPageFormDTO implements Serializable { private static final long serialVersionUID = 1L; diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonCardListFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonCardListFormDTO.java new file mode 100644 index 0000000..7a734c8 --- /dev/null +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonCardListFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.plugin.power.dto.visit.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +/** + * 海康社区人员信息下放 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-20 + */ +@Data +public class DhPersonCardListFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + private List objectList; + +} \ No newline at end of file diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonListFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonPageFormDTO.java similarity index 85% rename from epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonListFormDTO.java rename to epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonPageFormDTO.java index fc59e74..a053eab 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonListFormDTO.java +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonPageFormDTO.java @@ -12,11 +12,10 @@ import java.io.Serializable; * @since v1.0.0 2022-05-20 */ @Data -public class DhPersonListFormDTO implements Serializable { +public class DhPersonPageFormDTO implements Serializable { private static final long serialVersionUID = 1L; - private Integer pageNum; private Integer pageSize; diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPlanPageFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPlanPageFormDTO.java new file mode 100644 index 0000000..9b6f7c6 --- /dev/null +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPlanPageFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.plugin.power.dto.visit.form; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * 海康社区人员信息下放 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-20 + */ +@Data +public class DhPlanPageFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer pageNum; + + private Integer pageSize; + + private String singleCondition; + +} \ No newline at end of file diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-server/pom.xml b/epmet-plugins-module/pli-power-base/pli-power-base-server/pom.xml index 0c50438..e7d83b6 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-server/pom.xml +++ b/epmet-plugins-module/pli-power-base/pli-power-base-server/pom.xml @@ -206,7 +206,7 @@ false - 192.168.43.84 + 192.168.43.33 false diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java index c737eb4..08f4279 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java +++ b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java @@ -57,6 +57,8 @@ public class DhDeviceUtil { private final String DEL_PERSON = "/CardSolution/card/person/delete"; private final String ADD_PERSON_IMG = "/CardSolution/common/saveMobileBase64ImageToByte"; private final String ADD_AUTH = "/CardSolution/card/accessControl/doorAuthority/update"; + private final String LIST_CARD = "/CardSolution/card/card/bycondition/combined"; + private final String DEL_CARD = "/CardSolution/card/card/returnByNumber/"; private final String OPEN_CARD = "/CardSolution/card/card/open/batch"; /** @@ -201,9 +203,9 @@ public class DhDeviceUtil { url = url + urlParam; Map paramsMap = new HashMap<>(4); - DhPersonListFormDTO dto = new DhPersonListFormDTO(); + DhPersonPageFormDTO dto = new DhPersonPageFormDTO(); dto.setPageNum(1); - dto.setPageSize(10); + dto.setPageSize(100); dto.setCode(code); String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); @@ -234,6 +236,48 @@ public class DhDeviceUtil { delPerson(del); } + /** + * 卡片预处理 + * + * @param + * @return java.lang.String + * @author zhy + * @date 2022/5/23 10:08 + */ + public void cardHandle(String code) { + String url = dhCloudProperties.getUrl().concat(LIST_CARD); + String urlParam = getDhUrlParams(); + url = url + urlParam; + + Map paramsMap = new HashMap<>(4); + DhCardPageFormDTO dto = new DhCardPageFormDTO(); + dto.setPageNum(1); + dto.setPageSize(100); + dto.setPersonCode(code); + + String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); + + if (null == data) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询卡片列表失败"); + } + JSONObject toResult = JSON.parseObject(data); + DhResult result = ConvertUtils.mapToEntity(toResult, DhResult.class); + if (null != toResult.get("success")) { + result.setCode(200); + } + if (!result.getSuccess()) { + logger.info(result.getErrMsg()); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询卡片列表失败"); + } + Object registerResult = result.getData(); + + JSONObject jsonObject = JSON.parseObject(registerResult.toString()); + + JSONArray jsonArray = JSON.parseArray(jsonObject.get("pageData").toString()); + for (int i = 0; i < jsonArray.size(); i++) { + delCard(jsonArray.getJSONObject(i).get("cardNumber").toString()); + } + } /** * 删除人员 @@ -256,6 +300,28 @@ public class DhDeviceUtil { } } + /** + * 退卡 + * + * @param + * @return java.lang.String + * @author zhy + * @date 2022/5/23 10:08 + */ + public void delCard(String cardNum) { + String url = dhCloudProperties.getUrl().concat(DEL_CARD); + url = url + cardNum; + String urlParam = getDhUrlParams(); + url = url + urlParam; + + Map paramsMap = new HashMap<>(4); + + String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, StringUtils.EMPTY, paramsMap).getData(); + if (null == data) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "删除卡片失败"); + } + } + /** * 获取身份 * @@ -302,7 +368,7 @@ public class DhDeviceUtil { } /** - * 新增开门计划 + * 获取开门计划 * * @param * @return java.lang.String @@ -315,10 +381,10 @@ public class DhDeviceUtil { url = url + urlParam; Map paramsMap = new HashMap<>(4); - DhPlanFormDTO dto = new DhPlanFormDTO(); - dto.setDetail("{\\\"monday\\\":[\\\"00:00-23:59\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\"],\\\"tuesday\\\":[\\\"00:00-23:59\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\"],\\\"wednesday\\\":[\\\"00:00-23:59\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\"],\\\"thursday\\\":[\\\"00:00-23:59\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\"],\\\"friday\\\":[\\\"00:00-23:59\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\"],\\\"saturday\\\":[\\\"00:00-23:59\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\"],\\\"sunday\\\":[\\\"00:00-23:59\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\",\\\"00:00-00:00\\\"]}"); - dto.setName("访客计划"); - dto.setType(1); + DhPlanPageFormDTO dto = new DhPlanPageFormDTO(); + dto.setPageNum(1); + dto.setPageSize(100); + dto.setSingleCondition("默认"); String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); @@ -335,15 +401,15 @@ public class DhDeviceUtil { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询开门计划失败"); } Object registerResult = result.getData(); + JSONObject jsonObject = JSON.parseObject(registerResult.toString()); - if (null != jsonObject) { - return Long.parseLong(jsonObject.toString()); - } -// JSONArray jsonArray = JSON.parseArray(registerResult.toString()); -// JSONObject jsonObject = jsonArray.getJSONObject(0); -// if (null != jsonObject) { -// return jsonObject.get("id").toString(); -// } + + JSONArray jsonArray = JSON.parseArray(jsonObject.get("pageData").toString()); + + if (jsonArray.size() > 0) { + return Long.parseLong(jsonArray.getJSONObject(0).get("id").toString()); + } + return null; } @@ -361,8 +427,8 @@ public class DhDeviceUtil { url = url + urlParam; Map paramsMap = new HashMap<>(4); - DhChannelFormDTO dto = new DhChannelFormDTO(); - dto.setPageSize(1000); + DhChannelPageFormDTO dto = new DhChannelPageFormDTO(); + dto.setPageSize(100); dto.setPageSize(1); String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); @@ -380,14 +446,17 @@ public class DhDeviceUtil { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询通道列表失败"); } Object registerResult = result.getData(); - JSONArray jsonArray = JSON.parseArray(registerResult.toString()); - List list = new ArrayList<>(); + JSONObject jsonObject = JSON.parseObject(registerResult.toString()); + + JSONArray jsonArray = JSON.parseArray(jsonObject.get("pageData").toString()); + + List list = new ArrayList<>(); for (int i = 0; i < jsonArray.size(); i++) { - JSONObject jsonObject = jsonArray.getJSONObject(0); + JSONObject jsonItem = jsonArray.getJSONObject(0); DhChannelResultDTO channel = new DhChannelResultDTO(); channel.setPrivilegeType("1"); - channel.setResouceCode(jsonObject.get("channelCode").toString()); + channel.setResouceCode(jsonItem.get("channelCode").toString()); list.add(channel); } @@ -403,6 +472,9 @@ public class DhDeviceUtil { * @date 2022/5/23 11:04 */ public Long addPerson(DhPersonFormDTO dto) { + // 先退卡 + cardHandle(dto.getCode()); + // 再删人员 personHandle(dto.getCode()); String url = dhCloudProperties.getUrl().concat(ADD_PERSON); String urlParam = getDhUrlParams(); @@ -474,13 +546,9 @@ public class DhDeviceUtil { if (!result.getSuccess()) { logger.info(result.getErrMsg()); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "下发人员头像失败"); - } - Object registerResult = result.getData(); - JSONObject jsonObject = JSON.parseObject(registerResult.toString()); - if (null != jsonObject) { + } else { return "success"; } - return ""; } /** @@ -496,6 +564,8 @@ public class DhDeviceUtil { if (personId == null) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "添加人员信息失败"); } + DhPersonCardListFormDTO cardListFormDTO = new DhPersonCardListFormDTO(); + List cardList = new ArrayList<>(); DhPersonCardFormDTO cardFormDTO = new DhPersonCardFormDTO(); String url = dhCloudProperties.getUrl().concat(OPEN_CARD); String urlParam = getDhUrlParams(); @@ -517,10 +587,12 @@ public class DhDeviceUtil { } cardFormDTO.setCardPassword(pwd); cardFormDTO.setSubSystems("1"); + cardList.add(cardFormDTO); + cardListFormDTO.setObjectList(cardList); Map paramsMap = new HashMap<>(4); - String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(cardFormDTO), paramsMap).getData(); + String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(cardListFormDTO), paramsMap).getData(); if (null == data) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "人员开卡失败"); @@ -533,13 +605,9 @@ public class DhDeviceUtil { if (!result.getSuccess()) { logger.info(result.getErrMsg()); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "人员开卡失败"); - } - Object registerResult = result.getData(); - JSONObject jsonObject = JSON.parseObject(registerResult.toString()); - if (null != jsonObject) { + } else { return cardFormDTO.getCardNumber(); } - return ""; } /** @@ -552,20 +620,22 @@ public class DhDeviceUtil { */ public String addPersonAuth(DhPersonFormDTO dto, String imgUrl) { String personCard = addPersonCard(dto); - List channel = getChannel(); - Long plan = getPlan(); - if (StringUtils.isBlank(personCard)) { - return "开卡失败"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "开卡失败"); } else if (StringUtils.isNotBlank(imgUrl)) { addPersonImg(dto, imgUrl); } + + List channel = getChannel(); if (channel.isEmpty()) { - return "获取通道失败"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取通道失败"); } + + Long plan = getPlan(); if (plan == null) { - return "获取开门计划失败"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取开门计划失败"); } + DhAuthFormDTO authFormDTO = new DhAuthFormDTO(); String url = dhCloudProperties.getUrl().concat(ADD_AUTH); String urlParam = getDhUrlParams(); @@ -590,13 +660,9 @@ public class DhDeviceUtil { if (!result.getSuccess()) { logger.info(result.getErrMsg()); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "下发人员权限失败"); - } - Object registerResult = result.getData(); - JSONObject jsonObject = JSON.parseObject(registerResult.toString()); - if (null != jsonObject) { + } else { return "success"; } - return ""; } /**