Browse Source

社区、设备同步接口

feature/hk_device
wanggongfeng 3 years ago
parent
commit
e40930bf2b
  1. 12
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/controller/HikCommunityInfoController.java
  2. 12
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/controller/HikDeviceInfoController.java
  3. 9
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/dao/HikCommunityInfoDao.java
  4. 11
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/service/HikCommunityInfoService.java
  5. 10
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/service/HikDeviceInfoService.java
  6. 86
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/service/impl/HikCommunityInfoServiceImpl.java
  7. 89
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/service/impl/HikDeviceInfoServiceImpl.java
  8. 8
      epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/resources/mapper/hik/HikCommunityInfoDao.xml

12
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/controller/HikCommunityInfoController.java

@ -77,6 +77,18 @@ public class HikCommunityInfoController {
ExcelUtils.exportExcelToTarget(response, null, list, HikCommunityInfoExcel.class);
}
/**
* @Description: 同步社区列表信息
* @Param: [formDto]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<>
* @Author: wgf
* @Date: 2022-05-23
*/
@GetMapping("getCommunityList")
public Result getCommunityList() {
return hikCommunityInfoService.getCommunityList();
}
}

12
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/controller/HikDeviceInfoController.java

@ -77,6 +77,18 @@ public class HikDeviceInfoController {
ExcelUtils.exportExcelToTarget(response, null, list, HikDeviceInfoExcel.class);
}
/**
* @Description: 同步设备列表信息
* @Param: [formDto]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<>
* @Author: wgf
* @Date: 2022-05-23
*/
@GetMapping("getDeviceList")
public Result getDeviceList() {
return hikDeviceInfoService.getDeviceList();
}
}

9
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/dao/HikCommunityInfoDao.java

@ -1,9 +1,12 @@
package com.epmet.plugin.power.modules.hik.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.plugin.power.dto.hik.HikCommunityInfoDTO;
import com.epmet.plugin.power.modules.hik.entity.HikCommunityInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 海康社区信息
*
@ -12,5 +15,7 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface HikCommunityInfoDao extends BaseDao<HikCommunityInfoEntity> {
}
List<HikCommunityInfoDTO> getCommunityInfoAll();
}

11
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/service/HikCommunityInfoService.java

@ -2,6 +2,7 @@ package com.epmet.plugin.power.modules.hik.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.plugin.power.dto.hik.HikCommunityInfoDTO;
import com.epmet.plugin.power.modules.hik.entity.HikCommunityInfoEntity;
@ -75,4 +76,12 @@ public interface HikCommunityInfoService extends BaseService<HikCommunityInfoEnt
* @date 2022-05-20
*/
void delete(String[] ids);
}
/**
* 同步社区信息
* @param
* @return
*/
Result getCommunityList();
}

10
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/service/HikDeviceInfoService.java

@ -2,6 +2,7 @@ package com.epmet.plugin.power.modules.hik.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.plugin.power.dto.hik.HikDeviceInfoDTO;
import com.epmet.plugin.power.modules.hik.entity.HikDeviceInfoEntity;
@ -75,4 +76,11 @@ public interface HikDeviceInfoService extends BaseService<HikDeviceInfoEntity> {
* @date 2022-05-20
*/
void delete(String[] ids);
}
/**
* 同步设备信息
* @param
* @return
*/
Result getDeviceList();
}

86
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/service/impl/HikCommunityInfoServiceImpl.java

@ -1,24 +1,32 @@
package com.epmet.plugin.power.modules.hik.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.plugin.power.modules.hik.dao.HikCommunityInfoDao;
import com.epmet.plugin.power.dto.hik.HikCommunityInfoDTO;
import com.epmet.plugin.power.modules.hik.entity.HikCommunityInfoEntity;
import com.epmet.plugin.power.modules.hik.redis.HikCommunityInfoRedis;
import com.epmet.plugin.power.modules.hik.service.HikCommunityInfoService;
import com.epmet.plugin.power.modules.utils.HkDeviceUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 海康社区信息
@ -32,6 +40,16 @@ public class HikCommunityInfoServiceImpl extends BaseServiceImpl<HikCommunityInf
@Autowired
private HikCommunityInfoRedis hikCommunityInfoRedis;
@Autowired
private HkDeviceUtil hkDeviceUtil;
@Autowired
private LoginUserUtil loginUserUtil;
// 参数
private Integer pageNo = 1;
private Integer pageSize = 10;
@Override
public PageData<HikCommunityInfoDTO> page(Map<String, Object> params) {
IPage<HikCommunityInfoEntity> page = baseDao.selectPage(
@ -84,4 +102,64 @@ public class HikCommunityInfoServiceImpl extends BaseServiceImpl<HikCommunityInf
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}
@Override
public Result getCommunityList() {
// 请求路径
String url = "https://api2.hik-cloud.com/api/v1/estate/system/communities/actions/list";
// token
String token =hkDeviceUtil.getAccessToken();
token = "Bearer ".concat(token);
Map<String, Object> headerMap = new HashMap<>(4);
headerMap.put("Authorization",token);
Map<String, Object> paramsMap = new HashMap<>(4);
paramsMap.put("pageNo", pageNo);
paramsMap.put("pageSize", pageSize);
JSONArray jsonArray = getJSONArrayListGET(url,false,paramsMap,headerMap,"请求社区列表信息失败");
List<HikCommunityInfoEntity> entityList = new ArrayList<HikCommunityInfoEntity>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObj = jsonArray.getJSONObject(i);
// 转成对象实体
HikCommunityInfoEntity entity = JSONObject.toJavaObject(jsonObj ,HikCommunityInfoEntity.class);
entity.setCustomerId(loginUserUtil.getLoginUserCustomerId() == null ? "0001" : loginUserUtil.getLoginUserCustomerId());
entityList.add(entity);
}
insertBatch(entityList);
if(jsonArray != null && jsonArray.size() == 10){
pageNo++;
getCommunityList();
}
return new Result();
}
/**
* sendGet请求
* @param url
* @param isHttps
* @param paramsMap
* @param headerMap
* @param msg
* @return
*/
public JSONArray getJSONArrayListGET(String url,Boolean isHttps,Map<String, Object> paramsMap,Map<String, Object> headerMap,String msg){
// 请求接口
String data = HttpClientManager.getInstance().sendGet(url,false,paramsMap, headerMap).getData();
if (null == data) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg);
}
JSONObject toResult = JSON.parseObject(data);
JSONObject dataList = JSON.parseObject(toResult.get("data").toString());
JSONArray rows = JSONArray.parseArray(dataList.get("rows").toString());
return rows;
}
}

89
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/hik/service/impl/HikDeviceInfoServiceImpl.java

@ -1,24 +1,34 @@
package com.epmet.plugin.power.modules.hik.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.plugin.power.dto.hik.HikCommunityInfoDTO;
import com.epmet.plugin.power.modules.hik.dao.HikCommunityInfoDao;
import com.epmet.plugin.power.modules.hik.dao.HikDeviceInfoDao;
import com.epmet.plugin.power.dto.hik.HikDeviceInfoDTO;
import com.epmet.plugin.power.modules.hik.entity.HikCommunityInfoEntity;
import com.epmet.plugin.power.modules.hik.entity.HikDeviceInfoEntity;
import com.epmet.plugin.power.modules.hik.redis.HikDeviceInfoRedis;
import com.epmet.plugin.power.modules.hik.service.HikDeviceInfoService;
import com.epmet.plugin.power.modules.utils.HkDeviceUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 海康设备信息
@ -32,6 +42,15 @@ public class HikDeviceInfoServiceImpl extends BaseServiceImpl<HikDeviceInfoDao,
@Autowired
private HikDeviceInfoRedis hikDeviceInfoRedis;
@Autowired
private HkDeviceUtil hkDeviceUtil;
@Autowired
private LoginUserUtil loginUserUtil;
@Autowired
private HikCommunityInfoDao hikCommunityInfoDao;
@Override
public PageData<HikDeviceInfoDTO> page(Map<String, Object> params) {
IPage<HikDeviceInfoEntity> page = baseDao.selectPage(
@ -84,4 +103,66 @@ public class HikDeviceInfoServiceImpl extends BaseServiceImpl<HikDeviceInfoDao,
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}
@Override
public Result getDeviceList() {
// 请求路径
String url = "https://api2.hik-cloud.com/api/v1/estate/devices/actions/listByCommunityId";
// token
String token =hkDeviceUtil.getAccessToken();
token = "Bearer ".concat(token);
Map<String, String> headerMap = new HashMap<>(4);
headerMap.put("Authorization",token);
// 获取社区列表
List<HikCommunityInfoDTO> communityList = hikCommunityInfoDao.getCommunityInfoAll();
for(HikCommunityInfoDTO hikCommunityInfoDTO : communityList){
// 参数
Integer pageNo = 1;
Integer pageSize = 1000;
Map<String, Object> paramsMap = new HashMap<>(4);
paramsMap.put("pageNo", pageNo);
paramsMap.put("pageSize", pageSize);
paramsMap.put("communityId",hikCommunityInfoDTO.getCommunityId());
JSONArray jsonArray = getJSONArrayListPOST(url,JSON.toJSONString(paramsMap),headerMap,"请求设备列表信息失败");
List<HikDeviceInfoEntity> entityList = new ArrayList<HikDeviceInfoEntity>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObj = jsonArray.getJSONObject(i);
// 转成对象实体
HikDeviceInfoEntity entity = JSONObject.toJavaObject(jsonObj ,HikDeviceInfoEntity.class);
entity.setCustomerId(loginUserUtil.getLoginUserCustomerId() == null ? "0001" : loginUserUtil.getLoginUserCustomerId());
entityList.add(entity);
}
insertBatch(entityList);
}
return new Result();
}
/**
* sendGet请求
* @param url
* @param jsonStrParam
* @param headerMap
* @param msg
* @return
*/
public JSONArray getJSONArrayListPOST(String url,String jsonStrParam,Map<String, String> headerMap,String msg){
// 请求接口
String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url,jsonStrParam, headerMap).getData();
if (null == data) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), msg);
}
JSONObject toResult = JSON.parseObject(data);
JSONObject dataList = JSON.parseObject(toResult.get("data").toString());
JSONArray rows = JSONArray.parseArray(dataList.get("rows").toString());
return rows;
}
}

8
epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/resources/mapper/hik/HikCommunityInfoDao.xml

@ -21,5 +21,11 @@
<result property="latitude" column="LATITUDE"/>
</resultMap>
<select id="getCommunityInfoAll" resultType="com.epmet.plugin.power.dto.hik.HikCommunityInfoDTO">
select
*
from pli_hik_community_info where DEL_FLAG = '0'
</select>
</mapper>
</mapper>

Loading…
Cancel
Save