Browse Source

准备下发设备

feature/visit_zhy
zhangyuan 3 years ago
parent
commit
f31c1d3d45
  1. 39
      epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonFormDTO.java
  2. 4
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/utils/HkDeviceUtil.java
  3. 13
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/service/impl/VisitVisitorServiceImpl.java
  4. 138
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java
  5. 142
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhResult.java

39
epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonFormDTO.java

@ -0,0 +1,39 @@
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 DhPersonFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
private String paperType;
private String paperNumber;
private String name;
private String code;
private Long deptId;
private String sex;
private String birthday;
private String phone;
private String status;
private String personIdentityId;
}

4
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/utils/HkDeviceUtil.java

@ -109,8 +109,8 @@ public class HkDeviceUtil {
logger.info(result.getMsg()); logger.info(result.getMsg());
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());
return jsonObject.getString("personId"); return jsonObject.getString("personId");
} }

13
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/service/impl/VisitVisitorServiceImpl.java

@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.plugin.power.dto.visit.VisitVisitorDTO; import com.epmet.plugin.power.dto.visit.VisitVisitorDTO;
import com.epmet.plugin.power.dto.visit.form.DhPersonFormDTO;
import com.epmet.plugin.power.dto.visit.form.VisitVisitorChartFormDTO; import com.epmet.plugin.power.dto.visit.form.VisitVisitorChartFormDTO;
import com.epmet.plugin.power.dto.visit.form.VisitVisitorFormDTO; import com.epmet.plugin.power.dto.visit.form.VisitVisitorFormDTO;
import com.epmet.plugin.power.dto.visit.result.VisitVisitorChartResultDTO; import com.epmet.plugin.power.dto.visit.result.VisitVisitorChartResultDTO;
@ -149,7 +151,16 @@ public class VisitVisitorServiceImpl extends BaseServiceImpl<VisitVisitorDao, Vi
* @date 2022/7/28 9:13 * @date 2022/7/28 9:13
*/ */
private void send(VisitVisitorFormDTO dto) { private void send(VisitVisitorFormDTO dto) {
dhDeviceUtil.sendPerson(dto); DhPersonFormDTO formDTO = new DhPersonFormDTO();
formDTO.setPaperType("身份证");
formDTO.setPaperNumber(dto.getIdCard());
formDTO.setName(dto.getName());
formDTO.setCode(dto.getIdCard().substring(dto.getIdCard().length() - 10));
formDTO.setSex(NumConstant.ZERO_STR.equals(dto.getGender()) ? "女" : "男");
formDTO.setBirthday(dto.getIdCard().substring(6, 10) + "-" + dto.getIdCard().substring(10, 12) + "-" + dto.getIdCard().substring(12, 14));
formDTO.setPhone(dto.getMobile());
formDTO.setStatus("在职");
dhDeviceUtil.addPerson(formDTO);
} }
} }

138
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java

@ -1,19 +1,17 @@
package com.epmet.plugin.power.modules.visit.utils; package com.epmet.plugin.power.modules.visit.utils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.plugin.commons.redis.RedisKeys; import com.epmet.plugin.commons.redis.RedisKeys;
import com.epmet.plugin.power.config.DhCloudProperties; import com.epmet.plugin.power.config.DhCloudProperties;
import com.epmet.plugin.power.dto.hik.form.HikAuthorityFormDTO; import com.epmet.plugin.power.dto.visit.form.DhPersonFormDTO;
import com.epmet.plugin.power.dto.hik.form.HikPersonFormDTO; import org.apache.commons.lang3.StringUtils;
import com.epmet.plugin.power.dto.visit.form.VisitVisitorFormDTO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -40,8 +38,13 @@ public class DhDeviceUtil {
private final String GET_PUBLIC_KEY = "/WPMS/getPublicKey"; private final String GET_PUBLIC_KEY = "/WPMS/getPublicKey";
private final String GET_LOGIN_PASS = "/WPMS/login"; private final String GET_LOGIN_PASS = "/WPMS/login";
private final String SEND_PERSON = "/api/v1/estate/system/person"; private final String GET_DEPARTMENT = "/CardSolution/card/department";
private final String ISSUE_AUTHORITY = "/api/v1/estate/entranceGuard/permissions/actions/authorityIssued"; private final String GET_PERSON_IDENTITY = "/CardSolution/card/person/personidentity";
private final String GET_DOOR_PLAN = "/CardSolution/card/accessControl/timeQuantum/1/page";
// private final String GET_DOOR_GROUP = "/api/v1/estate/entranceGuard/permissions/actions/authorityIssued";
private final String ADD_PERSON = " /CardSolution/card/person";
private final String ADD_PERSON_IMG = "/CardSolution/common/saveMobileBase64ImageToByte";
private final String ADD_AUTH = " /CardSolution/card/accessControl/doorAuthority/update";
/** /**
* 获取publicKey * 获取publicKey
@ -116,38 +119,79 @@ public class DhDeviceUtil {
} }
/** /**
* 下发人员 * 查询部门列表
* *
* @param dto * @param
* @return java.lang.String 人员ID * @return java.lang.String
* @author zhy * @author zhy
* @date 2022/5/23 10:08 * @date 2022/5/23 10:08
*/ */
public String sendPerson(VisitVisitorFormDTO dto) { public Long getDept() {
String url = dhCloudProperties.getUrl().concat(SEND_PERSON); String url = dhCloudProperties.getUrl().concat(GET_DEPARTMENT);
String urlParam = getDhUrlParams();
url = url + urlParam;
Map<String, String> paramsMap = new HashMap<>(4); Map<String, String> paramsMap = new HashMap<>(4);
DhToken token = getLoginPass(getAccessToken());
String urlParam = "?userId=" + token.getId() + "&username=" + token.getLoginName() + "&token=" + token.getToken(); String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, StringUtils.EMPTY, 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("code")) {
result.setCode(((Integer) toResult.get("code")).intValue());
}
if (!result.getSuccess()) {
logger.info(result.getErrMsg());
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询部门列表失败");
}
Object registerResult = result.getData();
JSONArray jsonArray = JSON.parseArray(registerResult.toString());
JSONObject jsonObject = jsonArray.getJSONObject(0);
if (null != jsonObject) {
return Long.parseLong(jsonObject.get("deptId").toString());
}
return 0L;
}
/**
* 下发人员权限
*
* @param
* @return java.lang.String
* @author zhy
* @date 2022/5/23 11:04
*/
public String getIdentity() {
String url = dhCloudProperties.getUrl().concat(GET_PERSON_IDENTITY);
String urlParam = getDhUrlParams();
url = url + urlParam; url = url + urlParam;
String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); Map<String, String> paramsMap = new HashMap<>(4);
String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, StringUtils.EMPTY, 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(), "查询部门列表失败");
} }
JSONObject toResult = JSON.parseObject(data); JSONObject toResult = JSON.parseObject(data);
Result result = ConvertUtils.mapToEntity(toResult, Result.class); DhResult result = ConvertUtils.mapToEntity(toResult, DhResult.class);
if (null != toResult.get("code")) { if (null != toResult.get("code")) {
result.setCode(((Integer) toResult.get("code")).intValue()); result.setCode(((Integer) toResult.get("code")).intValue());
} }
if (NumConstant.TWO_HUNDRED != result.getCode()) { if (!result.getSuccess()) {
logger.info(result.getMsg()); logger.info(result.getErrMsg());
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()); JSONArray jsonArray = JSON.parseArray(registerResult.toString());
return jsonObject.getString("personId"); JSONObject jsonObject = jsonArray.getJSONObject(0);
if (null != jsonObject) {
return jsonObject.get("id").toString();
}
return "";
} }
/** /**
@ -158,27 +202,57 @@ public class DhDeviceUtil {
* @author zhy * @author zhy
* @date 2022/5/23 11:04 * @date 2022/5/23 11:04
*/ */
public String authorityIssued(HikAuthorityFormDTO dto) { public String addPerson(DhPersonFormDTO dto) {
String url = dhCloudProperties.getUrl().concat(ISSUE_AUTHORITY); String url = dhCloudProperties.getUrl().concat(ADD_PERSON);
String urlParam = getDhUrlParams();
url = url + urlParam;
Long deptId = getDept();
if (0L == deptId) {
return "";
}
String identity = getIdentity();
if (StringUtils.isBlank(identity)) {
return "";
}
dto.setDeptId(deptId);
dto.setPersonIdentityId(identity);
Map<String, String> paramsMap = new HashMap<>(4); Map<String, String> paramsMap = new HashMap<>(4);
paramsMap.put("Authorization", getAccessToken());
String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), 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(), "查询部门列表失败");
} }
JSONObject toResult = JSON.parseObject(data); JSONObject toResult = JSON.parseObject(data);
Result result = ConvertUtils.mapToEntity(toResult, Result.class); DhResult result = ConvertUtils.mapToEntity(toResult, DhResult.class);
if (null != toResult.get("code")) { if (null != toResult.get("code")) {
result.setCode(((Integer) toResult.get("code")).intValue()); result.setCode(((Integer) toResult.get("code")).intValue());
} }
if (NumConstant.TWO_HUNDRED != result.getCode()) { if (!result.getSuccess()) {
logger.info(result.getMsg()); logger.info(result.getErrMsg());
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "人员权限下发失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询部门列表失败");
} }
return "success"; Object registerResult = result.getData();
JSONObject jsonObject = JSON.parseObject(registerResult.toString());
if (null != jsonObject) {
return jsonObject.toString();
}
return "";
}
/**
* 拼接url固定参数
*
* @param
* @return java.lang.String
* @author zhy
* @date 2022/7/28 16:09
*/
private String getDhUrlParams() {
DhToken token = getLoginPass(getAccessToken());
return "?userId=" + token.getId() + "&username=" + token.getLoginName() + "&token=" + token.getToken();
} }
} }

142
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhResult.java

@ -0,0 +1,142 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有侵权必究
*/
package com.epmet.plugin.power.modules.visit.utils;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ErrorCode;
import com.epmet.commons.tools.utils.MessageUtils;
import com.epmet.commons.tools.utils.Result;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
/**
* 响应数据
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
public class DhResult<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 编码0表示成功其他值表示失败
*/
private Integer code = 0;
/**
* 消息内容
*/
private String errMsg = "success";
/**
* 内部信息
*/
private Boolean success = true;
/**
* 响应数据
*/
private T data;
public DhResult<T> ok(T data) {
this.setData(data);
return this;
}
public boolean success(){
return code == 0;
}
/**
* 返回
* "code": 8000,
* "msg": "服务器开小差了...",
*/
public DhResult<T> error() {
this.code = EpmetErrorCode.SERVER_ERROR.getCode();
this.errMsg = EpmetErrorCode.getMsg(code);
if (StringUtils.isBlank(this.errMsg)) {
this.errMsg = MessageUtils.getMessage(this.code);
}
return this;
}
/**
* 根据错误编码查询msg返回
*/
public DhResult<T> error(int code) {
this.code = code;
this.errMsg = EpmetErrorCode.getMsg(code);
if (StringUtils.isBlank(this.errMsg)) {
this.errMsg = MessageUtils.getMessage(this.code);
}
return this;
}
/**
* 传入错误编码+msg返回
*/
public DhResult<T> error(int code, String msg) {
this.code = code;
this.errMsg = msg;
return this;
}
/**
*
* @param msg
* @return 此方法废弃统一使用
* logger.error(XXXX);
* throw new RenException(XXXX);
* XXXX定义常量里
*/
@Deprecated
public DhResult<T> error(String msg) {
this.code = ErrorCode.INTERNAL_SERVER_ERROR;
this.errMsg = msg;
return this;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public Boolean getSuccess() {
return success;
}
public void setSuccess(Boolean success) {
this.success = success;
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
}
Loading…
Cancel
Save