Browse Source

完善下发卡片

feature/visit_zhy
zhangyuan 3 years ago
parent
commit
4f89fa5d5c
  1. 29
      epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhCardPageFormDTO.java
  2. 2
      epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhChannelPageFormDTO.java
  3. 22
      epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonCardListFormDTO.java
  4. 3
      epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonPageFormDTO.java
  5. 25
      epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPlanPageFormDTO.java
  6. 2
      epmet-plugins-module/pli-power-base/pli-power-base-server/pom.xml
  7. 152
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java

29
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;
}

2
epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhChannelFormDTO.java → 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 * @since v1.0.0 2022-05-20
*/ */
@Data @Data
public class DhChannelFormDTO implements Serializable { public class DhChannelPageFormDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

22
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<DhPersonCardFormDTO> objectList;
}

3
epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonListFormDTO.java → 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 * @since v1.0.0 2022-05-20
*/ */
@Data @Data
public class DhPersonListFormDTO implements Serializable { public class DhPersonPageFormDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer pageNum; private Integer pageNum;
private Integer pageSize; private Integer pageSize;

25
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;
}

2
epmet-plugins-module/pli-power-base/pli-power-base-server/pom.xml

@ -206,7 +206,7 @@
<nacos.config.namespace></nacos.config.namespace> <nacos.config.namespace></nacos.config.namespace>
<nacos.config.group></nacos.config.group> <nacos.config.group></nacos.config.group>
<nacos.config-enabled>false</nacos.config-enabled> <nacos.config-enabled>false</nacos.config-enabled>
<nacos.ip>192.168.43.84</nacos.ip> <nacos.ip>192.168.43.33</nacos.ip>
<!--是否开启服务列表变更监听--> <!--是否开启服务列表变更监听-->
<nacos.service-list-changed-listening.enable>false</nacos.service-list-changed-listening.enable> <nacos.service-list-changed-listening.enable>false</nacos.service-list-changed-listening.enable>

152
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 DEL_PERSON = "/CardSolution/card/person/delete";
private final String ADD_PERSON_IMG = "/CardSolution/common/saveMobileBase64ImageToByte"; private final String ADD_PERSON_IMG = "/CardSolution/common/saveMobileBase64ImageToByte";
private final String ADD_AUTH = "/CardSolution/card/accessControl/doorAuthority/update"; 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"; private final String OPEN_CARD = "/CardSolution/card/card/open/batch";
/** /**
@ -201,9 +203,9 @@ public class DhDeviceUtil {
url = url + urlParam; url = url + urlParam;
Map<String, String> paramsMap = new HashMap<>(4); Map<String, String> paramsMap = new HashMap<>(4);
DhPersonListFormDTO dto = new DhPersonListFormDTO(); DhPersonPageFormDTO dto = new DhPersonPageFormDTO();
dto.setPageNum(1); dto.setPageNum(1);
dto.setPageSize(10); dto.setPageSize(100);
dto.setCode(code); dto.setCode(code);
String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData();
@ -234,6 +236,48 @@ public class DhDeviceUtil {
delPerson(del); 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<String, String> 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<String, String> 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 * @param
* @return java.lang.String * @return java.lang.String
@ -315,10 +381,10 @@ public class DhDeviceUtil {
url = url + urlParam; url = url + urlParam;
Map<String, String> paramsMap = new HashMap<>(4); Map<String, String> paramsMap = new HashMap<>(4);
DhPlanFormDTO dto = new DhPlanFormDTO(); DhPlanPageFormDTO dto = new DhPlanPageFormDTO();
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.setPageNum(1);
dto.setName("访客计划"); dto.setPageSize(100);
dto.setType(1); dto.setSingleCondition("默认");
String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); 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(), "查询开门计划失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询开门计划失败");
} }
Object registerResult = result.getData(); Object registerResult = result.getData();
JSONObject jsonObject = JSON.parseObject(registerResult.toString()); JSONObject jsonObject = JSON.parseObject(registerResult.toString());
if (null != jsonObject) {
return Long.parseLong(jsonObject.toString()); JSONArray jsonArray = JSON.parseArray(jsonObject.get("pageData").toString());
}
// JSONArray jsonArray = JSON.parseArray(registerResult.toString()); if (jsonArray.size() > 0) {
// JSONObject jsonObject = jsonArray.getJSONObject(0); return Long.parseLong(jsonArray.getJSONObject(0).get("id").toString());
// if (null != jsonObject) { }
// return jsonObject.get("id").toString();
// }
return null; return null;
} }
@ -361,8 +427,8 @@ public class DhDeviceUtil {
url = url + urlParam; url = url + urlParam;
Map<String, String> paramsMap = new HashMap<>(4); Map<String, String> paramsMap = new HashMap<>(4);
DhChannelFormDTO dto = new DhChannelFormDTO(); DhChannelPageFormDTO dto = new DhChannelPageFormDTO();
dto.setPageSize(1000); dto.setPageSize(100);
dto.setPageSize(1); dto.setPageSize(1);
String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); 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(), "查询通道列表失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询通道列表失败");
} }
Object registerResult = result.getData(); Object registerResult = result.getData();
JSONArray jsonArray = JSON.parseArray(registerResult.toString());
List<DhChannelResultDTO> list = new ArrayList<>();
JSONObject jsonObject = JSON.parseObject(registerResult.toString());
JSONArray jsonArray = JSON.parseArray(jsonObject.get("pageData").toString());
List<DhChannelResultDTO> list = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) { for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(0); JSONObject jsonItem = jsonArray.getJSONObject(0);
DhChannelResultDTO channel = new DhChannelResultDTO(); DhChannelResultDTO channel = new DhChannelResultDTO();
channel.setPrivilegeType("1"); channel.setPrivilegeType("1");
channel.setResouceCode(jsonObject.get("channelCode").toString()); channel.setResouceCode(jsonItem.get("channelCode").toString());
list.add(channel); list.add(channel);
} }
@ -403,6 +472,9 @@ public class DhDeviceUtil {
* @date 2022/5/23 11:04 * @date 2022/5/23 11:04
*/ */
public Long addPerson(DhPersonFormDTO dto) { public Long addPerson(DhPersonFormDTO dto) {
// 先退卡
cardHandle(dto.getCode());
// 再删人员
personHandle(dto.getCode()); personHandle(dto.getCode());
String url = dhCloudProperties.getUrl().concat(ADD_PERSON); String url = dhCloudProperties.getUrl().concat(ADD_PERSON);
String urlParam = getDhUrlParams(); String urlParam = getDhUrlParams();
@ -474,13 +546,9 @@ public class DhDeviceUtil {
if (!result.getSuccess()) { if (!result.getSuccess()) {
logger.info(result.getErrMsg()); logger.info(result.getErrMsg());
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "下发人员头像失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "下发人员头像失败");
} } else {
Object registerResult = result.getData();
JSONObject jsonObject = JSON.parseObject(registerResult.toString());
if (null != jsonObject) {
return "success"; return "success";
} }
return "";
} }
/** /**
@ -496,6 +564,8 @@ public class DhDeviceUtil {
if (personId == null) { if (personId == null) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "添加人员信息失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "添加人员信息失败");
} }
DhPersonCardListFormDTO cardListFormDTO = new DhPersonCardListFormDTO();
List<DhPersonCardFormDTO> cardList = new ArrayList<>();
DhPersonCardFormDTO cardFormDTO = new DhPersonCardFormDTO(); DhPersonCardFormDTO cardFormDTO = new DhPersonCardFormDTO();
String url = dhCloudProperties.getUrl().concat(OPEN_CARD); String url = dhCloudProperties.getUrl().concat(OPEN_CARD);
String urlParam = getDhUrlParams(); String urlParam = getDhUrlParams();
@ -517,10 +587,12 @@ public class DhDeviceUtil {
} }
cardFormDTO.setCardPassword(pwd); cardFormDTO.setCardPassword(pwd);
cardFormDTO.setSubSystems("1"); cardFormDTO.setSubSystems("1");
cardList.add(cardFormDTO);
cardListFormDTO.setObjectList(cardList);
Map<String, String> paramsMap = new HashMap<>(4); Map<String, String> 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) { if (null == data) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "人员开卡失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "人员开卡失败");
@ -533,13 +605,9 @@ public class DhDeviceUtil {
if (!result.getSuccess()) { if (!result.getSuccess()) {
logger.info(result.getErrMsg()); logger.info(result.getErrMsg());
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "人员开卡失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "人员开卡失败");
} } else {
Object registerResult = result.getData();
JSONObject jsonObject = JSON.parseObject(registerResult.toString());
if (null != jsonObject) {
return cardFormDTO.getCardNumber(); return cardFormDTO.getCardNumber();
} }
return "";
} }
/** /**
@ -552,20 +620,22 @@ public class DhDeviceUtil {
*/ */
public String addPersonAuth(DhPersonFormDTO dto, String imgUrl) { public String addPersonAuth(DhPersonFormDTO dto, String imgUrl) {
String personCard = addPersonCard(dto); String personCard = addPersonCard(dto);
List<DhChannelResultDTO> channel = getChannel();
Long plan = getPlan();
if (StringUtils.isBlank(personCard)) { if (StringUtils.isBlank(personCard)) {
return "开卡失败"; throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "开卡失败");
} else if (StringUtils.isNotBlank(imgUrl)) { } else if (StringUtils.isNotBlank(imgUrl)) {
addPersonImg(dto, imgUrl); addPersonImg(dto, imgUrl);
} }
List<DhChannelResultDTO> channel = getChannel();
if (channel.isEmpty()) { if (channel.isEmpty()) {
return "获取通道失败"; throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取通道失败");
} }
Long plan = getPlan();
if (plan == null) { if (plan == null) {
return "获取开门计划失败"; throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取开门计划失败");
} }
DhAuthFormDTO authFormDTO = new DhAuthFormDTO(); DhAuthFormDTO authFormDTO = new DhAuthFormDTO();
String url = dhCloudProperties.getUrl().concat(ADD_AUTH); String url = dhCloudProperties.getUrl().concat(ADD_AUTH);
String urlParam = getDhUrlParams(); String urlParam = getDhUrlParams();
@ -590,13 +660,9 @@ public class DhDeviceUtil {
if (!result.getSuccess()) { if (!result.getSuccess()) {
logger.info(result.getErrMsg()); logger.info(result.getErrMsg());
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "下发人员权限失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "下发人员权限失败");
} } else {
Object registerResult = result.getData();
JSONObject jsonObject = JSON.parseObject(registerResult.toString());
if (null != jsonObject) {
return "success"; return "success";
} }
return "";
} }
/** /**

Loading…
Cancel
Save